Изменить разрешения на ключ реестра через командную строку

11

Я пытаюсь редактировать этот ключ реестра через командную строку - искал целую вечность, но ничего не могу найти.

На самом деле застрял на данный момент, поэтому любая помощь будет высоко ценится. Я не против использования PowerShell или чего-либо, что вызывает сторонний инструмент - просто хочу изменить его через командную строку.

Причина в том, что локальные администраторы по умолчанию имеют права только для чтения. Я хочу изменить это на Полный контроль. Я могу сделать это в графическом интерфейсе за 2 секунды, но командная строка - другое дело.

HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder
lara400
источник

Ответы:

7

Существует отличный изношенном о том , как сделать это в PowerShell здесь .

По сути, вы можете использовать Get-Aclи Set-Aclв PowerShell, как и для любого другого пути.

$acl = Get-Acl HKLM:\SOFTWARE\stuff
$rule = New-Object System.Security.AccessControl.RegistryAccessRule ("Domain\user","FullControl","Allow")
$acl.SetAccessRule($rule)
$acl |Set-Acl -Path HKLM:\SOFTWARE\stuff
MDMarra
источник
спасибо за это - проблема, с которой я сталкиваюсь, состоит в том, что, если я являюсь администратором, и я хочу изменить разрешения для ключа, который имеет права администратора как READ - он скажет, что доступ запрещен .... действительно раздражает. Я попробую вещь PowerShell и вернусь. Система также считана, поэтому для этого нельзя использовать psexec.
lara400
1
@ lara400 Затем вам нужно вступить во владение ключом, прежде чем вы сможете назначать writeразрешения. Ничто в мире не позволит кому-то только readвносить изменения. Это побеждает цель readACE. Я предлагаю вам открыть новый вопрос с просьбой стать владельцем раздела реестра в PowerShell.
MDMarra
4

Имеет ли regini.exe удовлетворить ваши потребности? Вы можете написать сценарий RegIni, который изменяет разрешения, а затем вызвать RegIni со сценарием в качестве параметра.

Например, если вы хотите, чтобы только администраторы имели полный доступ к этому ключу, скрипт выглядел бы так:

HKEY_CLASSES_ROOT\CLSID{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder [1]

Хотя, вероятно, вы также захотите предоставить системе доступ к ключу и, возможно, доступ только для чтения всем остальным, в этом случае суффикс безопасности будет

[1 8 17]

Вы можете найти номера суффиксов безопасности в этой таблице:

1  - Administrators Full Access
2  - Administrators Read Access
3  - Administrators Read and Write Access
4  - Administrators Read, Write and Delete Access
5  - Creator Full Access
6  - Creator Read and Write Access
7  - World Full Access
8  - World Read Access
9  - World Read and Write Access
10 - World Read, Write and Delete Access
11 - Power Users Full Access
12 - Power Users Read and Write Access
13 - Power Users Read, Write and Delete Access
14 - System Operators Full Access
15 - System Operators Read and Write Access
16 - System Operators Read, Write and Delete Access
17 - System Full Access
18 - System Read and Write Access
19 - System Read Access
20 - Administrators Read, Write and Execute Access
21 - Interactive User Full Access
22 - Interactive User Read and Write Access
23 - Interactive User Read, Write and Delete Access

И само собой разумеется, что вы должны иметь хорошую резервную копию, прежде чем поиграть с этим в первый раз, и, возможно, попрактиковаться в использовании фиктивного ключа реестра, чтобы избежать несчастных случаев.

dsolimano
источник