首页 > 解决方案 > 如何使用 Get-Item().SetValue [UnauthorizedAccessException] 设置注册表值

问题描述

使用 Get-Item 然后使用 GetValue 进行链接:

(Get-Item -path "HKCU:\Environment" ).GetValue('Path', '', 'DoNotExpandEnvironmentNames')

使用 Get-Item 然后与 SetValue 链接不起作用:

(Get-Item -path "HKCU:\Environment" ).SetValue('Path', 'test', 'ExpandString')

我收到以下错误:

Exception lors de l'appel de « SetValue » avec « 3 » argument(s) : « Impossible d'écrire dans la clé de Registre. »
Au caractère Ligne:1 : 1
+ (Get-Item -path "HKCU:\Environment").SetValue('Path', '%test%', 'Expa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : UnauthorizedAccessException

我已经尝试使用管理员权限(也就是右键单击以管理员身份运行)和 -force 标志,但没有更好的结果。

我究竟做错了什么 ?

问候,

标签: powershell

解决方案


我知道这篇文章已经有一个月了,但试试这个

$Environment = (Get-Item -Path 'HKCU:').OpenSubKey('Environment', $true)
$Environment.SetValue('Path', 'Test', 'ExpandString')

推荐阅读