以管理员身份运行,但仍然“不允许请求注册表访问”

时间:2013-03-27 17:06:19

标签: powershell

我有一个Windows PowerShell脚本。我以管理员身份登录Windows并以管理员身份运行PowerShell运行脚本,它运行良好;我可以在运行此脚本后看到所有更改。

但我仍然收到红色错误消息:

  

不允许请求注册表访问

这让我疯了。

为什么我会收到此错误,如何让它消失?

2 个答案:

答案 0 :(得分:4)

如果您运行regedit并导航到您尝试使用脚本访问的密钥,则可以右键单击它并查看权限。您可以在该密钥上看到管理员具有的权限(完全控制,读取,特殊权限)

答案 1 :(得分:0)

此PowerShell技巧对我有用:

$Path = "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg\UserChoice"
$SubKey = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey($Path, [Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree, [System.Security.AccessControl.RegistryRights]::ChangePermissions)
$Acl = $SubKey.GetAccessControl()
$RemoveAcl = $Acl.Access | Where-Object {$_.AccessControlType -eq "Deny"}
$Acl.RemoveAccessRule($RemoveAcl)
$SubKey.SetAccessControl($Acl)
$SubKey.Close()

** $ Path ==>将此更改为您的路径(“根”文件夹之后的路径)

**在$ SubKey ==> [Microsoft.Win32.Registry] :: CurrentUser中:将其更改为所需的根注册表路径