【问题标题】:Invoke-WMIMethod - Throws Error Not Found - SCCM CCM Actions调用 WMIMethod - 未找到引发错误 - SCCM CCM 操作
【发布时间】:2020-09-15 14:28:47
【问题描述】:
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 错误。

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

【问题讨论】:

    标签: powershell wmi sccm


    【解决方案1】:

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

    【讨论】:

    • 请在代码中使用直引号,而不是所谓的“智能引号”“ 和 ”
    • 对不起。修复它
    • 是的,奇怪的是 113 和 108 仍然失败。不过感谢您的回答。
    • 这些都与软件更新有关,您的环境中是否有任何关于更新的特殊配置?
    猜你喜欢
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多