I wanted to wake up all the machines in a collection using a vbscript. I know that SCCM has this built in, but I could not get it working. To troubleshoot I figured I would write a script to get collection members, and then wake them via the command line with this tool: http://www.gammadyne.com/cmdline.htm#wol
GetCollectionMembers "XXX00018" Sub GetCollectionMembers (COLLECTION_NAME) Set objLocation = CreateObject("WbemScripting.SWbemLocator") Set objService = objLocation.ConnectServer("SERVERNAME", "root\SMS\site_XXX") strQuery = "SELECT * FROM SMS_FullCollectionMembership WHERE CollectionID = '" & COLLECTION_NAME & "'" Set objSourceCollectionMembers = objService.ExecQuery(strQuery) For Each Resource In objSourceCollectionMembers WakeMachine objService,Resource.ResourceID Next End Sub Sub WakeMachine (objService,ResourceID) Set Machines = objService.ExecQuery("Select * From SMS_R_System where ResourceID =" & ResourceID) For Each Machine In Machines Set objShell = CreateObject("Wscript.Shell") strCurrentDir = Replace(WScript.ScriptFullName,WScript.ScriptName,"") strCommand = strCurrentDir & "\wol.exe " & Replace(Machine.MACAddresses(0),":","") Set objExecObject = objShell.Exec(strCommand) Next End Sub
Comments are closed.