代码:
workflow Test-RemoteReboot{
param ([string[]]$serverNames)
foreach -parallel($server in $serverNames){
Restart-Computer -PSComputerName $server -Wait -Force
}
}
Test-RemoteReboot SP,SP2
Run Code Online (Sandbox Code Playgroud)
问题:这是我在 powershell 中构建的相当长的工作流程的一小段摘录。从各方面来看,这应该有效,但我收到以下错误(即使在单独运行此脚本时):
Microsoft.PowerShell.Utility\Write-Error :运行命令停止,因为首选项变量“ErrorActionPreference”或公共参数设置为停止:跳过计算机 SP2。无法通过 WMI 服务检索其 LastBootUpTime,并显示以下错误消息:RPC 服务器不可用。(来自 HRESULT 的异常:0x800706BA)。在 line:433 char:25 + ... Receive-Job -Job $job -Wait -Verbose -Debug -ErrorAction ... + ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Write-Error] , ActionPreferenceStopException +fullyQualifiedErrorId : System.Management.Automation.ActionPreferenceStopException,Microsoft.PowerShell.Commands.WriteErrorCommand + PSComputerName : [localhost]
我查看了 RPC 服务器不可用的问题。防火墙关闭,RPC 服务正在运行,服务器在域中,工作流从域成员计算机运行,作为域管理员。我可以成功地 PSRemote 进入机器并做任何事情。我什至可以这样做:
workflow Test-LocalRebootRemotely{
param ([string[]]$serverNames)
foreach -parallel($server in $serverNames){
InlineScript { Restart-Computer -Force } -PSComputerName …Run Code Online (Sandbox Code Playgroud) powershell ×1