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

PowerShell远程执行Remove-Item报Path参数为null无法绑定错误

问题根因

Invoke-Command 执行传入的脚本块时,会在目标远程计算机创建独立的PowerShell会话运行代码,默认不会继承本地会话中定义的变量。你脚本块内引用的$regPath是远程会话内的变量,本地定义的$regPath值没有被传递到远程侧,远程执行时该变量值为$null,因此触发Path参数为空的报错。
手动复制$regPath的输出值硬编码到-Path后可以正常执行,是因为此时参数传入的是固定字符串字面量,不依赖跨会话变量传递。

修复方案

根据你使用的PowerShell版本,二选一即可:

  • PowerShell 3.0及以上版本(绝大多数现有环境都满足),直接使用using:作用域修饰符引用本地变量,写法最简洁:
$regPath = "HKLM:\SOFTWARE\Microsoft\Enrollments\" + $idString
$regPath
Invoke-Command -ComputerName $ComputerName {
    Remove-Item -Path $using:regPath -Force -Verbose
}
  • 全版本兼容写法,通过-ArgumentList传入参数,在脚本块内用param声明接收:
$regPath = "HKLM:\SOFTWARE\Microsoft\Enrollments\" + $idString
$regPath
Invoke-Command -ComputerName $ComputerName -ArgumentList $regPath -ScriptBlock {
    param($targetRegPath)
    Remove-Item -Path $targetRegPath -Force -Verbose
}

补充说明:HKLM:是PowerShell默认内置的注册表驱动器,远程会话默认会加载,不需要额外做映射处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:48:26