当运行Windows PowerShell WorkFlow
时,如果可以模仿另一个用户并使用New-CimSession
设置DCOM
来连接旧服务器(没有PowerShell),那将会很不错使用WSMAN
的新服务器。网上有一些information可用于此主题。
使用Set-PSBreakPoint
开始对此进行故障排除非常困难,因为它无法访问部分InlineScript
中正在进行的非常烦人的流程。
但是,每次我尝试运行以下Test-Stuff
WorkFlow时,它都会失败并出现弹出错误Windows PowerShell has stopped working
。在控制台中它说:
Microsoft.PowerShell.Utility\Write-Error : The background process reported an error with the following message: .
At Test-Stuff:59 char:59
代码:
Workflow Test-Stuff {
Param(
[String[]]$Servers,
[PSCredential]$Credentials
)
foreach -parallel ($S in $Servers) {
InlineScript {
$SessionParams = @{
ErrorAction = 'Stop'
Credential = $Using:Credentials
ComputerName = $Using:S
}
Try {
$Session = New-CimSession @SessionParams
}
Catch {
$Opt = New-CimSessionOption -Protocol Dcom
$Session = New-CimSession @SessionParams -SessionOption $Opt
}
$Params = @{
ClassName = 'Win32_Printer'
Property = '*'
CimSession = $Session
ErrorAction = 'Stop'
}
if ($Printers = Get-CimInstance @Params) {
$Printers
Remove-CimSession $Session
}
}
}
}
当运行与普通函数相同的代码时,它工作得很好..