从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