有人能解释一下为什么这份工作没有任何回报吗?当该对象未在作业中运行时,将创建并返回该对象。我不确定可能出了什么问题。
$verifyJob = {
$prm = @{'ComputerName' = $args[0];'Credential' = $args[1]}
$esc = @{'ErrorAction' = 'SilentlyContinue'}
# IP Address
$IPAddress = [System.Net.Dns]::GetHostAddresses($args[0]).IPAddressToString
# WMI queries
$os = gwmi Win32_OperatingSystem @prm @esc
$cs = gwmi Win32_ComputerSystem @prm @esc
[pscustomobject]@{
ComputerName = $args[0]
OSVersion = $os.Version.SubString(0,3)
Domain = $cs.Domain.Split(".")[0]
IP = $IPAddress
}
}
Start-Job -ScriptBlock $verifyJob -ArgumentList [server],[cred]
Get-Job |Wait-Job | Receive-Job当我收到这份工作时,那里什么也没有。我曾尝试将对象赋值给一个变量,并在作业结束时返回它,但也没有成功。
*为等待作业清晰度而编辑
发布于 2015-11-04 23:52:41
您需要等待作业完成才能获得结果。
接收作业cmdlet获取在提交接收作业命令时已生成的结果。如果结果尚未完成,您可以运行额外的Receive-Job命令来获取剩余的结果。
考虑到WMI查询可能需要一段时间才能运行,我怀疑您需要执行Wait-Job才能完成查询。
还要注意,Get-Job的结果将告诉您作业的状态以及是否有数据等待接收。
发布于 2015-11-05 00:01:38
当我发布代码时,它被证明是正确工作的。我的实际脚本很长,可能是一个单独的错误导致了我的问题。
https://stackoverflow.com/questions/33525972
复制相似问题