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

如何通过WMI或其他代码触发SCCM用户可用应用安装,无需使用软件中心

SCCM 客户端本地触发用户可用(Available)应用首次安装的解决方案

核心原理

SCCM 客户端默认不会预拉取用户集合靶向、部署目的为Available的应用策略到本地WMI仓库,以此减少客户端和管理点的无效通信开销。只有当Software Center启动时主动触发策略拉取请求,这类应用才会被同步到CCM_Application类中,这也是你之前只能看到已安装过的用户可用应用的原因。
我们只需要通过代码模拟Software Center的策略拉取动作,无需打开Software Center界面,就能完成所有用户可用应用的首次探测,后续即可直接调用CCM_Application的Install方法触发安装。

具体实现步骤(PowerShell 示例)

所有操作需在对应目标用户的上下文下执行,不可使用系统账户运行:

  1. 触发用户可用应用策略拉取,同步所有可用应用到本地WMI
# 连接SCCM客户端SDK命名空间
$appManager = Get-WmiObject -Namespace root\ccm\ClientSDK -Class CCM_ApplicationManager
# 拉取当前登录用户所有可用的应用策略,执行后所有应用会自动同步到CCM_Application类
$availableAppList = $appManager.GetAvailableApplications()
  1. 触发目标应用安装
# 按应用名称筛选目标应用,可根据需要调整筛选条件(如应用ID)
$targetApp = Get-WmiObject -Namespace root\ccm\ClientSDK -Class CCM_Application | Where-Object {$_.Name -eq "替换为你的应用名称"}
# 调用安装方法
$targetApp.Install()

如果执行第一步后未查询到目标应用,可先触发一次用户策略同步,等待1-2分钟后再重新拉取可用应用:

# 触发SCCM用户策略同步
Invoke-WmiMethod -Namespace root\ccm -Class SMS_Client -Name TriggerSchedule -ArgumentList "{00000000-0000-0000-0000-000000000027}"

注意事项

  • 用户靶向的应用策略和当前登录用户绑定,系统上下文下无法查询到对应用户的可用应用,所有代码必须在目标用户的登录会话中执行
  • 若应用部署有用户权限要求,执行安装的用户需满足部署的权限条件,否则调用安装方法会返回权限错误
  • 拉取到的应用属性和Software Center中展示的完全一致,后续卸载、重装等操作都可以直接通过CCM_Application类的对应方法完成,无需再打开Software Center

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:06:01