コンピュータや音楽の事書いてます

一般ユーザにレジストリ変更を一部だけ許可する

通常、一般ユーザはHKEY_CURRENT_USERしか変更出来ないが、HKEY_LOCAL_MACHINEなどの一部だけを許可したいとき。
$regkeyのところは、設定したいレジストリキー。
Users に対して許可する。
ContainerInheritとObjectInheritを指定するので、配下も許可することになる。

$regkey="HKLM:SOFTWARE\WOW6432Node\ImageMagick"
$acl=Get-Acl $regkey
$idRef = [System.Security.Principal.NTAccount]("Users")
$regRights = [System.Security.AccessControl.RegistryRights]::FullControl
$inhFlags = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit
$inhFlags+= [System.Security.AccessControl.InheritanceFlags]::ObjectInherit
$prFlags = [System.Security.AccessControl.PropagationFlags]::None
$acType = [System.Security.AccessControl.AccessControlType]::Allow
$rule = New-Object System.Security.AccessControl.RegistryAccessRule ($idRef, $regRights, $inhFlags, $prFlags, $acType)
$acl.AddAccessRule($rule)
$acl | Set-Acl -Path $regkey

確認

$acl=Get-Acl $regkey
$acl.Access