Fragensteller
Script zum starten von SCCM Aktionen

Frage
-
Hallo
Seit der Migration von WSUS auf SCCM haben wir das problem, dass wir die Installation der freigegebenen Updates im SCCM nicht mehr auf Befehl installieren können.
Kennt jemand ein Script, mit welchem man die CCM Aktionen starten kann und das Maintenance Window löscht, damit der Server sofort einen Reboot macht (falls nötig)
Ich bin für jeden Vorschlag dankbar.Gruss
Daniel
Alle Antworten
-
Das ConfigMgr SDK (http://www.microsoft.com/downloads/details.aspx?familyid=064a995f-ef13-4200-81ad-e3af6218edcc&displaylang=en) enthält eigentlich alles, was Du brauchst.
Erklär doch bitte mal das aktuelle Problem / Szenario genauer. Was ist wie konfiguriert? Was klappt nicht wie es soll? Wozu das Skript? etc -
Wir stellen für jeden Server eine Deadline im CCM ein in der die Server gepatcht und rebootet werden.
Es gibt aber diverse Server(Veritas Cluster zbsp.) welche wir nicht automatisch rebooten wollen oder können.Vorher hatten wir WSUS im Einsatz und hatten ein modifiziertes Script benutzt welches alle freigegebenen Patches im WSUS installiert und einen Reboot ausgelöst hat.
Mit der CCM Verteilung können wir diese Script nun nicht mehr benutzen, weil ja nicht mehr der Automatic Update Agent benutzt wird sondern der CCM Agent.
Nun habe ich ein Script gefunden, mit welchem sich die CCM Actions anstossen lassen, aber leider funktioniert das nicht bei den 64bit 2008 Servern. Vermutlich würde es laufen, wenn wir die UAC deaktivieren würden, aber das sollte ja nicht das Ziel sein. Das Script funktioneirt auch, wenn es lokal auf dem Server liegt, aber auch das ist nicht so toll. Wir würden dann diese Script in unsere SCOM Umgebung einfügen, somit hätte wir das Script zentral verwaltet und könnten Anpassungen jeweils einmal erfassen und gut.Das wäre das Script, natürlich müsste man das noch schön schreiben, aber wie erwähnt klappt das auf x64 2008 Server nicht.
'
' Main
'
' Clear Maintenance Window
Call ClearMaintenanceWindow()' Scan
Call InitiateSoftwareUpdatesScanCycle()' Deploy
Call InitiateSoftwareUpdatesEvaluationCycle()Sub InitiateSoftwareUpdatesEvaluationCycle()
' Set the required variables.
actionNameToRun = "Software Updates Assignments Evaluation Cycle"' Create a CPAppletMgr instance.
Dim oCPAppletMgr
Set oCPAppletMgr = CreateObject("CPApplet.CPAppletMgr")' Get the available ClientActions object.
Dim oClientActions
Set oClientActions = oCPAppletMgr.GetClientActions()' Loop through the available client actions. Run the matching client action when it is found.
Dim oClientAction
For Each oClientAction In oClientActions
If oClientAction.Name = actionNameToRun Then
oClientAction.PerformAction
End If
Nextwscript.echo "Ran: " & actionNameToRun
End Sub
Sub InitiateSoftwareUpdatesScanCycle()
' Set the required variables.
actionNameToRun = "Updates Source Scan Cycle"' Create a CPAppletMgr instance.
Dim oCPAppletMgr
Set oCPAppletMgr = CreateObject("CPApplet.CPAppletMgr")' Get the available ClientActions object.
Dim oClientActions
Set oClientActions = oCPAppletMgr.GetClientActions()' Loop through the available client actions. Run the matching client action when it is found.
Dim oClientAction
For Each oClientAction In oClientActions
If oClientAction.Name = actionNameToRun Then
oClientAction.PerformAction
End If
Next
wscript.echo "Ran: " & actionNameToRun
End Sub
Sub ClearMaintenanceWindow()
Set oLocator = CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer(sComputerName, "root\ccm\policy\machine\actualconfig")Set oServiceWindows = oService.ExecQuery ("select * from CCM_ServiceWindow")
For Each oServiceWindow In oServiceWindows
oService.Delete oServiceWindow.Path_
Next
Set oService = Nothing
Set oLocator = Nothing
End SubFalls wir hier völlig neben gängigen Methoden vorbeischiessen, bin ich auch für andere Tipps und Tricks dankbar.
Gruss
Daniel