【问题标题】:declare variable over Sessions在 Sessions 上声明变量
【发布时间】:2016-10-09 17:37:23
【问题描述】:

我启动了一个 PowerShell 脚本,它在另一台计算机上使用 Invoke-Command 调用函数。我想声明一个在所有这些会话中都可用的变量。

$var = "global"

function do-function{
    $var = "function"
    return $var
}

$var
invoke-command -ComputerName NameOfComputer -scriptblock  ${function:do-function}
$var

输出:

global
function
global

我的目标是:

global
function
function

【问题讨论】:

    标签: powershell variables scopes


    【解决方案1】:

    您必须将 Invoke-Command cmdlet 的返回值分配给变量:

    $var = "global"
    
    function do-function{
        $var = "function"
        return $var
    }
    
    $var
    $var = invoke-command -ComputerName NameOfComputer -scriptblock  ${function:do-function}
    $var
    

    另外,scriptblock 可以定义如下:

    $myScriptBlock = {
        # ....
    }
    
    invoke-command -ComputerName NameOfComputer -scriptblock $myScriptBlock
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      相关资源
      最近更新 更多