使用PowerShell远程运行注册表文件

bla*_*met 6 registry powershell windows-server-2008

我正在使用以下脚本test.reg在多个远程系统上运行:

$computers = Get-Content computers.txt

Invoke-Command -ComputerName $computers -ScriptBlock {
  regedit /i /s "\\SERVER\C$\RegistryFiles\test.reg"
}
Run Code Online (Sandbox Code Playgroud)

该脚本不会出错,但注册表项不会导入任何系统.

我知道test.reg文件是一个有效的注册表文件,因为我将其复制,手动运行,并导入注册表项.我还确保在远程计算机上启用了PowerShell远程处理.

任何想法为什么注册表项不导入?

Gre*_*ian 6

我找到了最好的方法,不要弄乱与服务器身份验证相关的问题,并减少复杂性只是为了将Reg文件作为参数传递给函数.

$regFile = @"
 Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters]
"MaxUserPort"=dword:00005000
"TcpTimedWaitDelay"=dword:0000001e
"@

Invoke-Command -ComputerName computerName -ScriptBlock {param($regFile) $regFile | out-file $env:temp\a.reg; 
    reg.exe import $env:temp\a.reg } -ArgumentList $regFile
Run Code Online (Sandbox Code Playgroud)