Ryan Smith
asked on
Query Collection in SCCM for members
Good Morning,
I'm trying to query the SCCM database to get the members of a collection. I'm trying to do this in vb.net. I found a script on Microsofts website but couldn't get it to work. I also know how to connect to the SCCM database but not sure how to grab a collection and then export it to a text file or show it in a VB.net List Box. Here's the code i got from microsoft.
I'm trying to query the SCCM database to get the members of a collection. I'm trying to do this in vb.net. I found a script on Microsofts website but couldn't get it to work. I also know how to connect to the SCCM database but not sure how to grab a collection and then export it to a text file or show it in a VB.net List Box. Here's the code i got from microsoft.
' Set up a connection to the local provider.
Set swbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set swbemServices= swbemLocator.ConnectServer(".", "root\sms")
Set providerLoc = swbemServices.InstancesOf("SMS_ProviderLocation")
For Each Location In providerLoc
If location.ProviderForLocalSite = True Then
Set swbemServices = swbemLocator.ConnectServer(Location.Machine, "root\sms\site_" + Location.SiteCode)
Exit For
End If
Next
Call EnumerateCollectionMembers(swbemServices)
Sub EnumerateCollectionMembers(connection)
' Set required variables.
' Note: Values must be manually added to the queries below.
' The following example shows how to enumerate the members of the All Systems (SMS00001) collection.
Query1 = "SELECT ResourceID FROM SMS_FullCollectionMembership WHERE CollectionID = 'SMS00001'"
' Run query.
Set ListOfResources1 = connection.ExecQuery(Query1, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
' The query returns a collection that needs to be enumerated.
Wscript.Echo " "
Wscript.Echo "Query: " & Query1
For Each Resource1 In ListOfResources1
Wscript.Echo Resource1.ResourceID
Next
' A slower alternative is to use the SMS_CollectionMember_a association class.
Query2 = "SELECT ResourceID FROM SMS_CollectionMember_a WHERE CollectionID = 'SMS00001'"
' Run query.
Set ListOfResources2 = connection.ExecQuery(Query2, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
' The query returns a collection that needs to be enumerated.
Wscript.Echo " "
Wscript.Echo "Query: " & Query2
For Each Resource2 In ListOfResources2
Wscript.Echo Resource2.ResourceID
Next
' A further alternative is to query the members by using the actual collection class name specified in the MemberClassName property of SMS_Collection.
Query3 = "SELECT ResourceID FROM SMS_CM_Res_Coll_SMS00001"
' Run query.
Set ListOfResources3 = connection.ExecQuery(Query3, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
' The query returns a collection that needs to be enumerated.
Wscript.Echo " "
Wscript.Echo "Query: " & Query3
For Each Resource3 In ListOfResources3
Wscript.Echo Resource3.ResourceID
Next
End Sub
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Tried but no answer
ASKER