Invoke-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)

全部抛出未找到的错误

有什么想法吗?这些被取代了吗?

解决方法

{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,其中每个-被一个_替换 您可以像这样登录用户来获取它们:

$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}仍然可以使用您使用的方法。抛出“未找到”错误的唯一原因是,如果它们不是以提升的管理员权限执行的,那么所有其他TriggerSchedule消息也是如此,因此我不知道可能是什么问题。