在 PowerShell 中远程处理 $Using 变量范围
在 PowerShell 中使用远程命令时,有时你可能希望在远程会话中使用本地变量。但是如果你在远程命令中使用局部变量,它会返回一个错误,因为该变量不是在远程会话中创建的。
默认情况下,PowerShell 期望远程命令中的变量在命令运行的远程会话中定义。Using
是一个特殊的作用域修饰符,允许你在远程命令中使用局部变量。
Using
范围修饰符将本地会话中定义的变量标识为远程命令中的本地变量。它是在 PowerShell 3.0 中引入的。
本教程将教你使用 PowerShell 中的 Using
在远程命令中使用局部变量。
在 PowerShell 中使用 Using
范围修饰符
Using
范围修饰符的语法是:
$Using:VariableName
Using
范围修饰符在远程执行的命令中受支持,从 Invoke-Command
开始使用 ComputerName
、HostName
、SSHConnection
或 Session
参数。
以下脚本显示了在本地计算机中定义并在远程会话中使用的 $test
变量。
$test = "C:\New\complex"
Invoke-Command -ComputerName remotePC -ScriptBlock {
Get-ChildItem $Using:test
}
第一个命令将目录 C:\New\complex
的路径存储在本地计算机的 $test
变量中。第二个命令在远程计算机上运行带有本地变量 $test
的 Get-ChildItem
命令。
因此,它会打印远程计算机目录 C:\New\complex
中存在的项目。
输出:
Directory: C:\New\complex
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 20-12-2021 19:31 112125 architecture of aqps.png
-a---- 20-12-2021 21:32 33148 formula.png
-a---- 20-12-2021 21:30 55621 modules.png
-a---- 20-12-2021 16:35 190485 output paper.png
你还可以在 PSSession
中使用 Using
范围修饰符。
在以下示例中,两个变量 $a
和 $b
在本地会话中创建并在远程会话中使用。 $result
变量在远程会话中定义,它存储 $a
和 $b
中的值的乘积。
$ps = New-PSSession -ComputerName remotePC
$a=5
$b=6
Invoke-Command -Session $ps -ScriptBlock {
$result = $Using:a*$Using:b
Write-Host The result is $result
}
输出:
The result is 30
我们希望本教程能帮助你了解如何在远程命令中对局部变量使用 Using
范围修饰符。有关详细信息,请阅读 about_Remote_Variables
。
相关文章
在 Windows PowerShell 中获取命令行参数
发布时间:2024/03/04 浏览次数:358 分类:编程语言
-
本文将解释我们如何使用 PowerShell 的参数函数处理命令行参数,参数如何工作,我们如何使用 PowerShell 参数将值传递给参数,以及定义参数的基本方法是什么。
Windows PowerShell 中的 Base64 编码
发布时间:2024/03/04 浏览次数:332 分类:编程语言
-
本文将展示如何编码和解码 base64 字符串。Windows PowerShell 当前版本没有本机命令,因此我们将向你展示如何执行此操作的替代方法。
在 Windows PowerShell 中写入输出
发布时间:2024/03/04 浏览次数:259 分类:编程语言
-
本文将向你展示如何在 Windows PowerShell 中编写或打印输出。本文还将区分多个 write cmdlet 并解释它们的意义。
在 Windows PowerShell 中设置 PATH 环境变量
发布时间:2024/03/04 浏览次数:350 分类:编程语言
-
本文将展示在 Windows PowerShell 中设置路径环境变量的正确方法。本文还展示了如何在持久性和非持久性方法中设置变量。
在 Windows PowerShell 中打印环境变量
发布时间:2024/03/04 浏览次数:869 分类:编程语言
-
本文将讨论什么是环境变量以及如何使用多个 Windows PowerShell 命令打印它们。
在 PowerShell 中注释代码
发布时间:2024/03/04 浏览次数:363 分类:编程语言
-
本文将展示在 Windows PowerShell 中注释代码的多种方法。本文还介绍了注释代码时的一些最佳实践。
在 PowerShell 中执行 LDAP 查询
发布时间:2024/03/04 浏览次数:304 分类:编程语言
-
本文将深入了解如何使用 Active Directory 过滤器和 LDAP 过滤器。