如何在 PowerShell 中的 Invoke-Command 中传递参数?
要在 Invoke-Command 中传递参数,你需要使用 -ArgumentList 参数。例如,我们需要在远程服务器上获取 notepad 进程信息。
示例
Invoke-Command -ComputerName Test1-Win2k12 -
ScriptBlock{param($proc) Get-Process -Name $proc} -
ArgumentList "Notepad"输出
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName PSComputerName ------- ------ ----- ----- ------ -- -- ----------- -------------- 67 8 1348 7488 0.08 104 notepad Test1-Win2k12
在上面的示例中,我们正在将 "Notepad" 名称作为参数传递给该命令,而该命令已被 Param() 内部的 $proc 变量捕获。
如果你有多个,请查看以下命令以传递多个参数。
示例
Invoke-Command -ComputerName Test1-Win2k12 -ScriptBlock{param($proc,$proc2) Get-Process -Name $proc,$proc2} -ArgumentList "Notepad","Calc"输出
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName PSComputerName ------- ------ ----- ----- ------ -- -- ----------- -------------- 96 20 5980 11392 0.19 288 calc Test1-Win2k12 67 8 1344 7556 0.08 104 notepad Test1-Win2k12
使用会话变量也可以实现相同的目的。
示例
$sess = New-PSSession -ComputerName Test1-win2k12
Invoke-Command -Session $sess -ScriptBlock{param($proc) Get-Process $proc} -ArgumentList "Notepad"输出
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName PSComputerName ------- ------ ----- ----- ------ -- -- ----------- -------------- 67 8 1348 7488 0.08 104 notepad Test1-Win2k12
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP