我正在尝试使用 powershell 禁用 Windows 资源管理器中烦人的上下文菜单。
解决方案据说使用以下内容:
reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
这很好用,但我无法使用 powershell 自己的注册表功能来实现它。我尝试过很多种方法。
$LP2 = "HKLM:\SOFTWARE\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32\"
Set-ItemProperty -Path $LP2 -Type String -Value "" -Force | Out-Null
# FAILS
Set-ItemProperty -Path $LP2 -Type String -Value ([byte[]]::new(0)) -Force | Out-Null
# FAILS
# And finally
$LP2 = "HKLM:\SOFTWARE\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\"
Set-ItemProperty -Path $LP2 -Name "InprocServer32" -Type String -Value ([byte[]]::new(0)) -Force | Out-Null
# Results in the permission error:
# Set-ItemProperty: Requested registry access is not allowed.
这是怎么回事,与上面的
reg add
相当于什么?
更新
我尝试使用管理 shell 中建议的解决方案,现在收到一些权限错误。
$LP2 = "HKLM:\SOFTWARE\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32"
Set-ItemProperty -Path $LP2 -Name '(default)' -Type String -Value '' -Force | Out-Null
# Set-ItemProperty: Requested registry access is not allowed.
尝试
New-Item
。
您必须在设置其值之前创建一个键。 Set-Item
不起作用,因为您尚未创建 $LP2
键。
New-Item -Path $LP2 -Force