Tuesday, June 19, 2012

Accidentally deleted "All Systems" Collection

*somehow* the All Systems collection had gotten deleted.  I didn't really think anything of it until our HelpDesk system was unable to use it's Asset Inventory function because it was polling the SMS00001 collection.

With some help from Chris Nackers blog I found this vb script which restored the collection with the appropriate collection ID -


'###Begin Code

strSMSServer = "ENTER SERVERNAME HERE" 
strParentCollID = "COLLROOT" 
'This example creates the collection in the collection root. 
'Replace COLLROOT with the CollectionID of an existing collection to make the new collection a child.

strCollectionName = "All Systems" 
strCollectionComment = "This is the All Systems Collection." 
Set objLoc = CreateObject("WbemScripting.SWbemLocator") 
Set objSMS = objloc.ConnectServer(strSMSServer, "root\sms") 
Set Results = objSMS.ExecQuery ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true")

For each Loc in Results 
If Loc.ProviderForLocalSite = True Then 
  Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & Loc.SiteCode) 
End if 
Next

Set newCollection = objSMS.Get("SMS_Collection").SpawnInstance_()

'Create new "All Systems" collection 
newCollection.Name = "All Systems" 
newCollection.OwnedByThisSite = True 
newCollection.Comment = strCollectionComment 
newCollection.CollectionID = "SMS00001" 
path = newCollection.Put_

'Set the Relationship 
Set newCollectionRelation = objSMS.Get("SMS_CollectToSubCollect").SpawnInstance_() 
newCollectionRelation.parentCollectionID = strParentCollID 
newCollectionRelation.subCollectionID = ("SMS00001") 
newCollectionRelation.Put_

'###End Code

Then all I had to do was add my customized query, that removes discovered apple devices, into the collection and do an update/refresh and presto (You could remove the "where" part of the statement to get it back to original) -

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client
from SMS_R_System
where SMS_R_System.Name not like "%AD"
and  SMS_R_System.Name not like "%AL"

No comments:

Post a Comment

Remote Mailboxes - Hybrid Config - Missing

The Remote Mailbox exists on the On Prem Exchange server and linked to the Office 365 mailbox. Without one of these for each Office 365 mail...