Author Posts

November 14, 2016 at 11:40 pm

I'm trying to query SCCM , filtering by computer, using the following script:

Get-WmiObject -ComputerName SOMESERVER -Namespace "root\sms\site_SOMESITE" -Class "SMS_CollectionMember_a" -Filter "ResourceID='SOMEDEVICEID'"

It isn't outputting anything though I've confirmed via the SCCM console that the Device ID is correct and the machine does belong to several collections. I would appreciate some help.

November 15, 2016 at 2:25 pm

Have you tried this with the -Filter removed?

November 15, 2016 at 3:07 pm

SCCM comes with a bunch of cmdlets. If you like to make your life easier you should use those.

November 15, 2016 at 3:22 pm

Don, I did try it. There are over 2,000 machines in SCCM. Based on the time the query ran I think it was successful, however, again it didn't output any information.

Olaf, thank you for the suggestion. I looked into using Get-CMDevice but felt that the WMI Objects were better suited to my needs. I may have to reinvestigate.

November 15, 2016 at 6:22 pm

For investigative purposes only you could try

Get-WmiObject -ComputerName SOMESERVER -Namespace "root\sms\site_SOMESITE" -Class "SMS_CollectionMember_a" | Where ResourceID -eq SOMEDEVICEID

ResourceID should be a 32 bit unsigned integer

Alternatively try

Get-WmiObject -ComputerName SOMESERVER -Namespace "root\sms\site_SOMESITE" -Class "SMS_CollectionMember_a" | sort ResourceID
| select Name, ResourceID

The SMS_CollectionMember_a class is documented here https://msdn.microsoft.com/en-us/library/cc145603.aspx

November 15, 2016 at 6:33 pm

Thanks Richard. That query works and will suffice for my immediate needs.