gpt4 book ai didi

Powershell Invoke-Command 传递环境变量

转载 作者:行者123 更新时间:2023-12-02 00:35:25 25 4
gpt4 key购买 nike

我希望使用 Invoke-Command 将环境变量从调用机器传递到执行 Invoke-Command 的服务器。

我希望它能工作:

Invoke-Command -ComputerName MyServer-ScriptBlock {
$env:VAR=$using:env:USERNAME
Write-Host $env:VAR
}

但是这个命令的输出是空的。如果我不使用 $using 范围修饰符,而只是直接分配变量,我会得到预期的输出(“VAR”)。

Invoke-Command -ComputerName MyServer -ScriptBlock {
$env:VAR="VAR"
Write-Host $env:VAR
}

那么,我可以将 $using 与环境变量一起使用吗?如果没有,是否有一种简单的方法可以将环境变量传递到运行 Invoke-Command 的远程计算机?

最佳答案

一种选择是在调用之前将环境变量分配给标准变量:

$username = $env:USERNAME

Invoke-Command -ComputerName MyServer-ScriptBlock {
$env:VAR=$using:userName
Write-Host $env:VAR
}

请注意,在您的 session 结束后,像这样分配环境变量 ($env:VAR=<value>) 将不会持续存在。使用 Environment.SetEnvironmentVariable()方法。

关于Powershell Invoke-Command 传递环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49861301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com