首页 > 解决方案 > 调用 WMIMethod - 未找到引发错误 - SCCM CCM 操作

问题描述

Invoke-WMIMethod -ComputerName $computer -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000026}"  | Out-Null
Invoke-WMIMethod -ComputerName $computer -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000027}"  | Out-Null
Invoke-WMIMethod -ComputerName $computer -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-0000000000113}"  | Out-Null
Invoke-WMIMethod -ComputerName $computer -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-0000000000108}"  | Out-Null)

全部抛出 Not Found 错误。

有任何想法吗?这些被取代了吗?

标签: powershellwmisccm

解决方案


{00000000-0000-0000-0000-000000000026}并且{00000000-0000-0000-0000-000000000027}是特定于用户的,并且似乎已更改为依赖于 sid 的不同类,因此您可以为任何用户调用它。调用它们的最常见示例是

$sched=([wmi]"root\ccm\Policy\$sid\ActualConfig:CCM_Scheduler_ScheduledMessage.ScheduledMessageID='{00000000-0000-0000-0000-000000000026}'")
$sched.Triggers=@('SimpleInterval;Minutes=1;MaxRandomDelayMinutes=0')
$sched.Put()

其中 $sid 是用户 SID,每个都-替换为 a_ 您可以像这样为登录用户获取它们:

$sids = (get-wmiobject -query "SELECT UserSID FROM CCM_UserLogonEvents WHERE LogoffTime = NULL" -namespace "ROOT\ccm").UserSID.replace('-','_')

但是{00000000-0000-0000-0000-000000000113}{00000000-0000-0000-0000-000000000108}应该仍然可以使用您使用的方法。抛出 Not Found 错误的唯一原因是如果它们没有以提升的管理员权限执行,但对于所有其他 TriggerSchedule 消息也是如此,所以我不知道问题可能是什么。


推荐阅读