2010-08-05 85 views
0

我试图设置注册表权限到FullControl,但不断收到此错误。一切正常,直到Set-Acl。我究竟做错了什么?设置注册表权限错误“Set-Acl:请求的注册表访问不被允许。”

New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT 

$acl = Get-Acl HKCR:\CLSID\"{000C1090-0000-0000-C000-000000000046}"\InprocServer32 

$newOwner = [System.Security.Principal.NTAccount]"$env:userdomain\$env:username" 
$acl.SetOwner($newOwner) 

$person = [System.Security.Principal.NTAccount]"Administrators" 
$access = [System.Security.AccessControl.RegistryRights]"FullControl" 
$inheritance = [System.Security.AccessControl.InheritanceFlags]"None" 
$propagation = [System.Security.AccessControl.PropagationFlags]"None" 
$type = [System.Security.AccessControl.AccessControlType]"Allow" 
$rule = New-Object System.Security.AccessControl.RegistryAccessRule("$person","$access","$inheritance","$propagation","$type") 
$acl.SetAccessRule($rule) 

$acl | Set-Acl 

回答

1

除非您拥有某些权限,并且在当前进程中启用了这些权限,否则不能将新所有者分配给文件或文件夹。通常,所有权是通过允许其他人自己拥有所有权给予的。这确保了审计过程的完整性。特别的权利是SeBackupPrivilege。

这就是说,我并不是说这是不可能的。下载PowerShell的社区扩展,并按照我这里张贴的说明:

http://pscx.codeplex.com/Thread/View.aspx?ThreadId=214175

-Oisin