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

咨询SCCM插件获取命令行参数方法及PackageID传递机制

排查SCCM 2012右键工具PackageID传递机制

核心逻辑梳理

SCCM控制台的右键工具本质是通过控制台扩展注册关联对象与执行脚本/程序的,PackageID的传递依赖注册时配置的参数占位符,以及脚本对命令行参数的接收逻辑。

具体排查步骤

  • 检查右键工具的注册配置
    打开注册表编辑器,定位到SCCM控制台扩展的注册表路径:
    HKLM\Software\Microsoft\ConfigMgr12\AdminUI\Console\Extensions\Actions
    找到对应右键菜单的GUID子项,查看CommandLine值,确认是否包含PackageID的占位符(常见为%ID%或{0})。比如正确的命令行配置可能是:

    "C:\Path\To\Your\CompiledScript.exe" %ID%
    

    这里%ID%会被SCCM控制台自动替换为选中包的PackageID。

  • 验证脚本的参数接收逻辑
    编译前的PowerShell脚本中,需确保正确接收命令行参数:

    • 若用默认参数数组,可直接输出$args[0]获取第一个参数(即PackageID);
    • 更规范的方式是用param块定义参数:
      param(
          [Parameter(Mandatory=$true)]
          [string]$PackageID
      )
      # 后续逻辑使用$PackageID变量
      

    编译后的EXE会保留参数传递逻辑,可在脚本中添加调试输出(如Write-Host "Received PackageID: $PackageID"),运行后查看控制台输出确认是否接收到正确值。

  • 确认SCCM对象属性映射
    在SCCM控制台中,右键目标包→属性,查看Package ID字段的值,对比脚本接收到的参数是否一致,以此验证占位符替换是否正常。

常见问题点

  • 若注册时未配置占位符,脚本自然无法收到PackageID;
  • PowerShell Studio编译时若未勾选“传递命令行参数”选项,可能导致参数丢失;
  • 脚本中误用$Commandline变量(SCCM不会主动传递这个变量,需自己从命令行参数解析)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 08:34:57