首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerShell运行空间、输出和变量

PowerShell运行空间、输出和变量
EN

Stack Overflow用户
提问于 2016-12-08 19:22:46
回答 1查看 1.8K关注 0票数 1

我正在尝试理解PowerShell中的运行空间。我知道PoshRSJob-Module,但我想自己创造我的运行空间乔布斯。

这是我的代码,大部分是从这个博客中取出的

代码语言:javascript
复制
$Computer = "somename"
[runspacefactory]::CreateRunspacePool() > $null
$SessionState = [System.Management.Automation.Runspaces.InitialSessionState]::CreateDefault()
$RunspacePool = [runspacefactory]::CreateRunspacePool(1,5)
$RunspacePool.Open()
1..2 | % {
    $PowerShell = [powershell]::Create()
    $PowerShell.RunspacePool = $RunspacePool
    $PowerShell.AddScript({
        param(
            $Computer
        )
        $Computer
    }) > $null
    $PowerShell.AddParameter($Computer)
    $Invoke = $PowerShell.BeginInvoke()
    while (!($Invoke.IsCompleted)) {sleep -Milliseconds 2}
    $Data = $PowerShell.EndInvoke($Invoke)
    Write-Host $Data -f Red
}

我脑子里有三个问题:

  • 我能否返回变量中的值,并在完成作业后在脚本中进一步使用它?
  • 为什么我的$Data变量是空的?
  • 在我到目前为止的脚本中,创建以下输出的是什么?如果我像这样$null调用$Invoke = $PowerShell.BeginInvoke() > $null,那么脚本就不能正常工作了,并且仍然创建这个输出

Commands : System.Management.Automation.PSCommand Streams : System.Management.Automation.PSDataStreams InstanceId : 3b91cfda-028e-4cec-9b6d-55bded5d9d3c InvocationStateInfo : System.Management.Automation.PSInvocationStateInfo IsNested : False HadErrors : False Runspace : RunspacePool : System.Management.Automation.Runspaces.RunspacePool IsRunspaceOwner : False HistoryString :

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-08 19:52:25

我不明白你的第一个问题。

关于第二个问题,我认为这是因为您使用的是$PowerShell.AddParameter($Computer)

试一试$PowerShell.AddArgument($Computer)AddArgument用于添加一个隐式(位置)绑定到参数的值。AddParameter用于添加命名参数。只需要一个AddParameter参数的string的重载是用于[Switch]参数的。

关于你的第三个问题,我认为是$RunspacePool.Open()给了你这个输出。

当试图确定这些事情时,寻找没有左赋值的行,特别是使用方法调用;因此,您没有将这些值赋值给变量,因为这通常是将这些值放入输出流的方式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41047251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档