viele stehen vor dem Problem wann das PatchManagement am besten laufen soll, ohne dass der Mitarbeiter gestört wird.
Über GPO beim Herunterfahren ist eine Lösung.
Wir planen jetzt das Ausführen am Samstag mit WOL und fahren den Rechner danach ggf. herunter. Die Tests (mit einem Rechner) liefen bisher erfolgreich.
Das Paket "Scan" läuft arbeitstäglich. Geht ja schnell.
Beim Paket "Fix" gebe ich im Zeitplaner unter "Häufigkeit" Jede "1" "Woche" "00:01" bis "23:59" und unter "Serienmuster" "Wöchentlich" "Samstag" an und aktiviere auch das WOL.
Zusätzlich habe ich noch ein Installationspaket "PM3 Shutdown" erstellt, welches ich mit zu den beiden PM3-Paketen gelegt habe. Dadurch ergibt sich die Reihenfolge, dass dieses Paket immer nach den beiden Patch-Paketen ausgeführt wird. Sicherheitshalber habe ich noch in "Reihenfolge" und "Abhängikeiten" das Fix-Paket eingetragen. Die Abhängigkeit ist wichtig bei einer Neuinstallation des Rechners, da sonst das Skript ausgeführt wird und der Rechner mitten in der Installation aus wäre.
Als Template habe ich "Unattend" genommen und angepasst. Ablauf des Skripts:
Code: Select all
...
[Environment]
...
;Auslesen der Revision vom Fix-Paket
V_PM3Revision=%HKLM,"Software\MATRIX42\PM3Client-Fix\15.1\Setup","Revision"%
;Auslesen des LoopCounts
V_PM3LoopCount=%HKLM,"Software\MATRIX42\PM3Client","LoopCount"%
[Product]
;Prüft, ob ein Nutzer angemeldet ist
#CheckUser
;Prüft, ob ein Rechner nicht heruntergefahren werden soll
#CheckExceptions
;Prüft, ob das PacthManagement noch läuft und fährt ggf. herunter
#CheckProcess
;*** Nutzer ist angemeldet ***
[CheckUser]
If DoesProcessExist("explorer.exe") == 1 Then "ExitUser" EndIf
[ExitUser]
AbortSilent "Ein Nutzer ist angemeldet. Der Rechner wird nicht heruntergefahren."
;*** ENDE Nutzer ist angemeldet ***
;*** Soll der Rechner nicht heruntergefahren werden? ***
[CheckExceptions]
Copy \\%EmpirumServer%\Configurator$\Packages\%DeveloperName%\%Productname%\%Version%\Exceptions.txt %Src%\Exceptions.txt
If DoesTextInFileExist("%ComputerName%", "%Src%\Exceptions.txt") == 1 Then "ExitException" EndIf
[ExitException]
AbortSilent "Dieser Rechner wird nicht heruntergefahren."
;*** ENDE Soll der Rechner nicht heruntergefahren werden? ***
; Warten, wenn PM noch läuft, danach ggf. herunterfahren
[CheckProcess]
;Revision dieses Paketes von 1 auf 0 setzen
;Falls PM3 den Rechner neu startet wird dieses Paket auch wieder ausgeführt
#Reg:Revision0
WaitWhileProcessExists PM3Client.exe
ReplaceEnv V_PM3Revision
ReplaceEnv V_PM3LoopCount
If %V_PM3Revision% == 1 & %V_PM3LoopCount% <> 5 Then "Shutdown" EndIf
AbortSilent "Patch-Management ist noch nicht fertig."
[Shutdown]
;Revision dieses Paketes von 0 auf 1 setzen, da PM3 fertig ist
#Reg:Revision1
ErrorLogMsg "Patch-Management ist fertig, der Rechner wird heruntergefahren."
shutdown -s -t 30
Exit
[Reg:Revision1]
HKLM,"SOFTWARE\EmpirumInstalled\%DeveloperName%\%ProductName%\%Version%\Setup","Revision",0x00000000,"1"
[Reg:Revision0]
HKLM,"SOFTWARE\EmpirumInstalled\%DeveloperName%\%ProductName%\%Version%\Setup","Revision",0x00000000,"0"
Viel Spaß und Erfolg beim Testen.