从PowerShell脚本调用W32TM会导致RPC错误
我正在尝试(我认为是)一个简单的脚本,让网络上的所有机器进行时间重新同步(我知道他们无论如何都会自己做)。我创建了以下脚本:从PowerShell脚本调用W32TM会导致RPC错误,powershell,windows-7,rpc,Powershell,Windows 7,Rpc,我正在尝试(我认为是)一个简单的脚本,让网络上的所有机器进行时间重新同步(我知道他们无论如何都会自己做)。我创建了以下脚本: Import-Module ActiveDirectory $list = Get-ADComputer -filter * -SearchBase "OU=Computers,OU=CaymanPort,DC=CaymanPort,DC=com" foreach ($computer in $list) { echo $computer.name if (Te
Import-Module ActiveDirectory
$list = Get-ADComputer -filter * -SearchBase "OU=Computers,OU=CaymanPort,DC=CaymanPort,DC=com"
foreach ($computer in $list) {
echo $computer.name
if (Test-Connection -Cn $computer.name -BufferSize 16 -Count 1 -ea 0 -quiet ) {
w32tm /resync /nowait /computer:$computer.name
} else {
echo DOWN!
}
}
但是当我运行它时,我得到了相同的“发生了以下错误:RPC服务器不可用。(0x800706BA)”错误。如果我从Powershell CLI运行相同的命令,它可以正常工作
我尝试使用invoke-command cmdlet在远程计算机上运行w32tm命令,但这需要为每台计算机启用WinRM(我没有启用)
我正在Windows 7 64位计算机上运行该脚本,目标是Server 2003、2008和Windows 7 x32/x64计算机的组合。知道为什么脚本而不是命令行会失败吗?通常会发生这种情况,因为
$computer.name
被解析为$computer+“.name”
,即使它可能正确地从echo
命令中输出
我的建议是创建一个[string]
并将$computer.name
的值分配给它,如下所示:
[string]$compname = $computer.name
cmd /c w32tm /resync /nowait /computer:$compname
通常会发生这种情况,因为
$computer.name
被解析为$computer+“.name”
,即使它可能正确地从echo
命令中输出
我的建议是创建一个[string]
并将$computer.name
的值分配给它,如下所示:
[string]$compname = $computer.name
cmd /c w32tm /resync /nowait /computer:$compname
通常会发生这种情况,因为
$computer.name
被解析为$computer+“.name”
,即使它可能正确地从echo
命令中输出
我的建议是创建一个[string]
并将$computer.name
的值分配给它,如下所示:
[string]$compname = $computer.name
cmd /c w32tm /resync /nowait /computer:$compname
通常会发生这种情况,因为
$computer.name
被解析为$computer+“.name”
,即使它可能正确地从echo
命令中输出
我的建议是创建一个[string]
并将$computer.name
的值分配给它,如下所示:
[string]$compname = $computer.name
cmd /c w32tm /resync /nowait /computer:$compname