Powershell 在作业内的运行空间中执行Resolve DnsName

Powershell 在作业内的运行空间中执行Resolve DnsName,powershell,jobs,runspace,Powershell,Jobs,Runspace,以下代码可以正常工作: $ScriptBlock={ 解析DnsName-名称BELCL003000 } $Pool=[RunspaceFactory]::CreateRunspacePool(1,6) $Pool.ApartmentState='MTA' $Pool.Open() $Runspaces=@() $Runspace=[PowerShell]::Create() $null=$Runspace.AddScript($ScriptBlock) #$null=$Runspace.Add

以下代码可以正常工作:

$ScriptBlock={
解析DnsName-名称BELCL003000
}
$Pool=[RunspaceFactory]::CreateRunspacePool(1,6)
$Pool.ApartmentState='MTA'
$Pool.Open()
$Runspaces=@()
$Runspace=[PowerShell]::Create()
$null=$Runspace.AddScript($ScriptBlock)
#$null=$Runspace.AddArgument($TestWaveGroupName)
$Runspace.RunspacePool=$Pool
$Runspaces+=@{
管道=$Runspace
状态=$Runspace.BeginInvoke()
}
while($Runspaces.Status-ne$null){
$CompletedRunspaces=$Runspaces.Where({$\状态.IsCompleted-eq$true})
foreach($CompletedRunspaces中的C){
$C.Pipe.EndInvoke($C.Status)
$C.Status=$null
}
}
$Pool.Close()
$Pool.Dispose()
但是,当我将其全部打包到一个
作业中时
会突然不再有相同主机名的输出:

启动作业-脚本块{
$Pool=[RunspaceFactory]::CreateRunspacePool(1,6)
$Pool.ApartmentState='MTA'
$Pool.Open()
$Runspaces=@()
$Runspace=[PowerShell]::Create()
$null=$Runspace.AddScript($ScriptBlock)
#$null=$Runspace.AddArgument($TestWaveGroupName)
$Runspace.RunspacePool=$Pool
$Runspaces+=@{
管道=$Runspace
状态=$Runspace.BeginInvoke()
}
while($Runspaces.Status-ne$null){
$CompletedRunspaces=$Runspaces.Where({$\状态.IsCompleted-eq$true})
foreach($CompletedRunspaces中的C){
$C.Pipe.EndInvoke($C.Status)
$C.Status=$null
}
}
$Pool.Close()
$Pool.Dispose()
}
获取作业|接收作业-等待-自动删除作业
我是不是漏掉了什么明显的东西?我尝试在
脚本块
中添加
导入模块DnsClient
,但没有成功

其他
ScriptBlocks
使用此方法返回输出时不会出现问题,而不是
Resolve-DnsName
CmdLet。工作方法用于表单中,以使表单保持响应性