尝试使用Set-ItemProperty使用备用管理员凭据设置HKLM注册表,但我收到错误消息“提供程序不支持使用凭据。”以标准最终用户身份运行此脚本时,该用户将无法编辑我们想要编辑的HKLM值。
$RegKey1 ='HKLM:\SOFTWARE\Microsoft\Office\Outlook\Addins\Workshare.Client.OutlookFormUI.AddinModule'
$username = "LocalAdmin"
$password = "Passw0rd"
$AdminCred = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))
Set-ItemProperty -Path $RegKey1 -Name "LoadBehavior" -Value 2 -Credential $AdminCred
答案 0 :(得分:1)
解决方案是创建一个包含所有所需HKLM更改的reg文件,并使用带-credentials参数的start-process来执行reg.exe。
SQL> select t1.parentid
2 , lpad(' ', level*2)||t2.childid as childid
3 , level
4 from t1
5 left join t2 on t1.parentid=t2.parentid
6 connect by prior t2.childid = t2.parentid
7 start with t1.parentid is not null
8 order by t1.parentid
9 /
PARE CHILDID LEVEL
---- ---------- ----------
P01 C01 1
P01 C02 1
P01 P03 1
P01 P04 1
P02 1
P03 C03 2
P03 A01 1
P03 C03 1
P03 A01 2
P04 A02 2
P04 A02 1
11 rows selected.
SQL>
答案 1 :(得分:0)
来自Get-Help Set-ItemProperty -Detailed:
-Credential指定有权执行此操作的用户帐户。默认为当前用户。
键入用户名,例如" User01"或" Domain01 \ User01",或输入 PSCredential对象,例如由Get-Credentia l生成的对象 小命令。如果键入用户名,系统将提示您输入密码。
安装的任何提供程序都不支持此参数 Windows PowerShell。
Get-PSProvider | FT -AutoSize
Name Capabilities Drives
---- ------------ ------
Registry ShouldProcess, Transactions {HKLM, HKCU}
Alias ShouldProcess {Alias}
Environment ShouldProcess {Env}
FileSystem Filter, ShouldProcess, Credentials {C, D, E}
Function ShouldProcess {Function}
Variable ShouldProcess {Variable}
Certificate ShouldProcess {Cert}
(文件系统提供商具有自PS 3.0以来的凭据和功能)
您可以看到,注册管理机构提供商并不支持凭据。此参数仅适用于将使用Set-ItemProperty通用命令的其他自定义提供程序,并且可能会添加'凭据'支持他们自己的连接远程计算机的方式。
如果您想实现目标,请使用PS Remoting,WMI,远程注册表PowerShell模块或Jerry Lai建议。