Sometimes you just need a quick way to trigger SCCM Client Actions remotely and you don’t want to have to build a Collection and wait for it to update before using Right-Click tools to do it.
PowerShell Method
Invoke-WMIMethod -ComputerName <computerName> -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000001}" # Hardware Inventory Cycle
Invoke-WMIMethod -ComputerName <computerName> -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000002}" # Software Inventory Cycle
Invoke-WMIMethod -ComputerName <computerName> -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000003}" # Data Discovery Record (Heartbeat Discovery)
Invoke-WMIMethod -ComputerName <computerName> -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000121}" # Application Deployment Evaluation
Invoke-WMIMethod -ComputerName <computerName> -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000021}" # Machine Policy Assignments Request
Invoke-WMIMethod -ComputerName <computerName> -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000022}" # Machine Policy Evaluation
WMIC Method (deprecated)
wmic /node:<computerName> /namespace:\\root\ccm path sms_client CALL TriggerSchedule "{00000000-0000-0000-0000-000000000001}" /NOINTERACTIVE
Script Example
$Computers = Get-Content -Path $PSScriptRoot\Computers.txt
ForEach ($comp in $Computers) {
Write-Host "Triggering Hardware Inventory on $comp"
Invoke-WMIMethod -ComputerName $comp -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000001}" # Hardware Inventory
}
For a full list of available Client Action Triggers see:
https://docs.microsoft.com/en-us/mem/configmgr/develop/reference/core/clients/client-classes/triggerschedule-method-in-class-sms_client
Application Deployment Evaluation Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000121}” /NOINTERACTIVE
Discovery Data Collection Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000003}” /NOINTERACTIVE
File Collection Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000010}” /NOINTERACTIVE
Hardware Inventory Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000001}” /NOINTERACTIVE
Machine Policy Retrieval Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000021}” /NOINTERACTIVE
Machine Policy Evaluation Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000022}” /NOINTERACTIVE
Software Inventory Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000002}” /NOINTERACTIVE
Software Metering Usage Report Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000031}” /NOINTERACTIVE
Software Updates Assignments Evaluation Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000108}” /NOINTERACTIVE
Software Update Scan Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000113}” /NOINTERACTIVE
State Message Refresh WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000111}” /NOINTERACTIVE
User Policy Retrieval Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000026}” /NOINTERACTIVE
User Policy Evaluation Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000027}” /NOINTERACTIVE
Windows Installers Source List Update Cycle WMIC /namespace:\\root\ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000032}” /NOINTERACTIVE