如何在PowerShell中的Invoke-Command中传递参数?

要在Invoke-command中传递参数,您需要使用-ArgumentList参数。例如,我们需要在远程服务器上获取记事本处理信息。

示例

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

在上面的示例中,我们将“记事本”名称作为命令的参数传递,并且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

使用Session变量也可以实现相同的目的。

示例

$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

以上是 如何在PowerShell中的Invoke-Command中传递参数? 的全部内容, 来源链接: utcz.com/z/338043.html

回到顶部