You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何声明$process='SVCHOST'成功,但在Invoke-Command中无法正常工作?

问题原因与解决方法

问题出在远程脚本块无法直接访问本地变量:你声明的$process是本地变量,而Invoke-Command的脚本块是在远程机器的PowerShell会话中执行的,默认无法识别本地上下文里的变量。

下面是两种可行的解决方式:

方式1:使用$using:前缀(PowerShell 3.0+推荐)

通过$using:前缀告诉PowerShell,要引用的是本地会话中的变量:

$process='SVCHOST'
Invoke-Command -ComputerName 你的目标机器名 -ScriptBlock { Get-Process -Name $using:process }

方式2:通过-ArgumentList传递参数(兼容低版本)

把本地变量作为参数传递给远程脚本块,有两种写法:

写法A:直接用$args接收

$process='SVCHOST'
Invoke-Command -ComputerName 你的目标机器名 -ScriptBlock { Get-Process -Name $args[0] } -ArgumentList $process

写法B:显式定义参数(可读性更高)

$process='SVCHOST'
Invoke-Command -ComputerName 你的目标机器名 -ScriptBlock {
    param($targetProcess)
    Get-Process -Name $targetProcess
} -ArgumentList $process

内容的提问来源于stack exchange,提问作者Phong Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 21:01:20