PatchManagement v3 - Herunterfahren

Moderator: moderators

André Schüttel
Posts: 276
Joined: 08. Jul 2009, 13:37
Location: Leipzig
Contact:

PatchManagement v3 - Herunterfahren

Post by André Schüttel » 16. May 2014, 10:38

Hallo an alle,

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"
Das alles soll nur auf Arbeitsplatzrechnern angewandt werden, nicht auf Servern. Falls dazu jemand eine Idee hat würde es mich und garantiert auch andere interessieren.

Viel Spaß und Erfolg beim Testen.
EMPIRUM v21.0.3; RemoteControl (2nd NIC); ESM v12.0.1.1174; SQL Server 2014 Std; Windows Server 2016 Std

ARemus
Posts: 139
Joined: 15. Apr 2013, 13:04
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by ARemus » 24. Jun 2014, 13:04

Das mit PM3 shutdown, klingt interessant. Allerdings ist mir nicht ganz klar, wo du das angehängt hast.
Damit das funktion.

Würde es gerne bei uns einmal testen um die PC dann nicht mehr Manuell updaten zu müssen.

André Schüttel
Posts: 276
Joined: 08. Jul 2009, 13:37
Location: Leipzig
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by André Schüttel » 24. Jun 2014, 13:38

Hallo ARemus,

ich habe die drei Pakete Scan, Fix und Shutdown in die Konfigurationsgruppe gesteckt, die Verteiloptionen angepasst und aktiviert - fertig.

Das Shutdown hat die gleichen Verteiloptionen wie das Fix-Paket, aber ohne WOL.

Wenn ein Rechner neu installiert wird und man nicht bis Samstag warten will, dann steckt man die drei Pakete direkt zum Rechner und aktiviert sie ohne Verteiloptionen. Nach dem die Neuinstallation fertig ist, löscht man die drei Pakete wieder und es werden die "Samstagspakete" aktiviert.

Gleich noch eine Ergänzung, bitte austauschen. Der Rechner würde sonst an bleiben, obwohl PM (fehlerhaft) fertig ist:

Code: Select all

[CheckProcess]
...
If (%V_PM3Revision% == 1 & %V_PM3LoopCount% <> 5) | (%V_PM3Revision% == 0 & %V_PM3LoopCount% == 0) Then "Shutdown" EndIf
EMPIRUM v21.0.3; RemoteControl (2nd NIC); ESM v12.0.1.1174; SQL Server 2014 Std; Windows Server 2016 Std

ARemus
Posts: 139
Joined: 15. Apr 2013, 13:04
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by ARemus » 24. Jun 2014, 13:48

OK. Und was meinste du mit der Reihenfolge gemeint?

André Schüttel
Posts: 276
Joined: 08. Jul 2009, 13:37
Location: Leipzig
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by André Schüttel » 24. Jun 2014, 14:13

Die Reihenfolge der Abarbeitung hängt in erster Linie davon ab, wie die Pakete unter "Software-Pakete" angezeigt werden. Die drei Pakete liegen unter dem Register "Matrix42": 1. Scan-Paket, 2. Fix-Paket und 3. PM3 Shutdown.

Das bedeutet, dass diese Pakete immer in dieser Reihenfolge abgearbeitet werden. Gleichzeitig ist das Fix-Paket von einen Reg-Schlüssel abhängig, welcher durch das Scan-Paket gesetzt wird und PM3 Shutdown ist abhängig vom Fix-Paket, welches also installiert sein muss.

Läuft also das Scan-Paket und würde keinen fehlenden Patch erkennen, dann fehlt dieser Reg-Key bzw. ist 0 und das Fix-Paket würde gar nicht erst loslaufen und somit auch das PM3 Shutdown nicht.

Wäre das PM3 Shutdown nicht abhängig vom Fix-Paket würde es loslaufen und den Rechner herunterfahren, obwohl noch gar kein Fixing durchgeführt wurde.

Wenn ein Rechner neu installiert wird gibt es garantiert fehlende Patches und somit werden alle drei Pakete abgearbeitet.
EMPIRUM v21.0.3; RemoteControl (2nd NIC); ESM v12.0.1.1174; SQL Server 2014 Std; Windows Server 2016 Std

ARemus
Posts: 139
Joined: 15. Apr 2013, 13:04
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by ARemus » 24. Jun 2014, 15:09

Ah alles. Klar.

Hast du den Haken, gesetzt bei nicht ausführen nachholen.

André Schüttel
Posts: 276
Joined: 08. Jul 2009, 13:37
Location: Leipzig
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by André Schüttel » 24. Jun 2014, 15:20

Du meinst bestimmt bei "Überfälligen Job / Installation nachholen"?

Nein, dann würden die Pakete ja auch laufen, wenn gerade ein Nutzer dran sitzt.
EMPIRUM v21.0.3; RemoteControl (2nd NIC); ESM v12.0.1.1174; SQL Server 2014 Std; Windows Server 2016 Std

ARemus
Posts: 139
Joined: 15. Apr 2013, 13:04
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by ARemus » 24. Jun 2014, 15:57

Hmm... Irgendwie funktioniert das bei mir nicht so wie gewünscht.

Ich habe bei der Verteiloption bei beiden Paketen die selbe Startzeit eingeben und nur beim fix das WOL aktiviert.

Er installiert das Shutdown auch. aber leider zwischen dem PM3 Reboot. Befehle sind Installieren und Erneuern.

André Schüttel
Posts: 276
Joined: 08. Jul 2009, 13:37
Location: Leipzig
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by André Schüttel » 24. Jun 2014, 16:02

Hast Du auch im PM3-Shutdown-Paket die Abhängigkeit und sicherheitshalber die Reihenfolge definiert?

Rechtsklick auf "PM3 Shutdown" -> Eigenschaften -> Register "Version" -> Reihenfolge/Abhängigkeiten "Fix-Paket" eintragen
EMPIRUM v21.0.3; RemoteControl (2nd NIC); ESM v12.0.1.1174; SQL Server 2014 Std; Windows Server 2016 Std

ARemus
Posts: 139
Joined: 15. Apr 2013, 13:04
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by ARemus » 25. Jun 2014, 08:10

ne hatte nur die Abhängigkeit eingetragen. Dann trage ich noch mal das Fix in die Reihenfolge ein und teste das noch mal.

André Schüttel
Posts: 276
Joined: 08. Jul 2009, 13:37
Location: Leipzig
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by André Schüttel » 25. Jun 2014, 08:39

Gleich noch eine Ergänzung:

bei den Reg:Revision-Einträgen steht im Schlüssel "EmpirumInstalled", dass ist mein eigener Eintrag, der nur bei meinen Paketen gilt.

Standardmäßig sind die Variablen UserKeyName und MachineKeyName ohne "EmpirumInstalled".
EMPIRUM v21.0.3; RemoteControl (2nd NIC); ESM v12.0.1.1174; SQL Server 2014 Std; Windows Server 2016 Std

ARemus
Posts: 139
Joined: 15. Apr 2013, 13:04
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by ARemus » 25. Jun 2014, 09:16

Ok. das hatte ich einfach raus genommen, weil ich dachte das passt nicht.

Aber ich vermute das es daran auch liegt, warum er ob wohl er es immer wieder installiert. Den Rechner nicht herunterfährt.

Da ich einfach nicht den shutdown beim w7 Rechner hinbekomme.

Wie könnte ich das denn mal ab besten testen. Wo er hakt.

André Schüttel
Posts: 276
Joined: 08. Jul 2009, 13:37
Location: Leipzig
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by André Schüttel » 25. Jun 2014, 09:41

Können Sie bitte mal Ihre Setup.inf vom PM3-Shutdown hier einstellen? Da kann ich mir die mal ansehen.
EMPIRUM v21.0.3; RemoteControl (2nd NIC); ESM v12.0.1.1174; SQL Server 2014 Std; Windows Server 2016 Std

ARemus
Posts: 139
Joined: 15. Apr 2013, 13:04
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by ARemus » 25. Jun 2014, 10:20

Code: Select all

[SetupInfo]
Author                  = a.remus
CreationDate            =
InventoryID             =
Description             = PM3 Shutdown
Method                  =
Tested on               = /W7
Dependencies            =
Command line options    = /S0
Last Change             =
Build                   =

[VarDefInfo]
; <Variable>, <Type: 0=Computer 1=User>, <Allow NULL values: 0=No 1=Yes>

[Setup]
Version=15.1
ShowCaption=1
BlockInput=0
Platform=*

[Requirements]

[Application]
ProductName=PM3 Shutdown
DeveloperName=IT
Version=1.0
Revision=0
SetupName=%ProductName% %Version% %SetupWizard%
Text1="%ProductName%",                                Arial,           30, , 2170F3, 4,    , LEFT BOLD ITALIC
Text2="%DeveloperName%",                              Arial,           24, , 2170F3, 4,    , LEFT BOLD ITALIC
Text8="%Company%",                                    Arial,           18, , 2170F3, 4,  10, RIGHT BOLD ITALIC
Text9="%InstallationFor% %WindowsUser%",              Arial,16, ,2170F3,4,0,BOTTOM LEFT ITALIC
BackgroundColor=EFEFEF,000000
CopyDialogRect=0%, 0%, 100%, 100%, HCENTER VCENTER
UserKeyName=%DeveloperName%\%ProductName%
MachineKeyName=%DeveloperName%\%ProductName%\%Version%
UninstallKeyName=%DeveloperName% %ProductName% %Version%
UninstallDisplayName=%ProductName% %Version%
UninstallString=%ReinstallString% /U
ReinstallString="%CommonSetupDir%\Setup.exe" "%App%\%SetupInfDir%\Setup.inf"
ReinstallMode=1
SrcDir=..
ApplicationDir=%ProgramFilesDir%\%ProductName%
SetupInfDir=Install
DataDir=%Personal%
AskUninstallOld=1
ShellLinks=1
CommonShellLinks=1
CreateUnresolvableShellLinks=1
UseStringSection=Strings:09
UseSysStringSection=SysStrings:09
DateWarning=1
SizeWarning=0
Reboot={UnattRebootFlg}
PreventExternalReboot=1
StartServicesOnReboot=0
CallTimeOut=3600
AbortAfterCallTimeOut=1
DisableCancelButton=1
ShowEndMessage=1
EndMessage=%EndMessageDesc%


[Strings:07]
Disk1=Installationsmedium 1
EndMessageDesc=Die Installation wurde erfolgreich abgeschlossen!
ErrorLogMessage=Die Installation/Deinstallation wurde mit einer Fehlermeldung abgebrochen!
InstallationFor=Installation für:
InstallerDesc=Dienstprogramm zum Installieren einzelner Komponenten.
InstallerName=Installationsprogramm
SetupWizard=Installations-Assistent
Uninstallation=deinstallieren
ErrorText=Fehler
CallingText=beim Aufruf von

[Strings:09]
Disk1=Installation media 1
EndMessageDesc=Installation was completed successfully!
ErrorLogMessage=The installation/uninstallation aborted with an error message!
InstallationFor=Installation for:
InstallerDesc=Service program to install single components.
InstallerName=Setup program
SetupWizard=Installation Wizard
Uninstallation=Uninstallation
ErrorText=Error
CallingText=launching

[SysStrings:07]
Users=Benutzer

[SysStrings:09]
Users=Users

[Environment]
CommonSetupDir=%CommonFilesDir%\Setup%SetupBits%
V_MachineValuesPath=\\%EmpirumServer%\Values$\MachineValues\%DomainName%
V_UserValuesPath=%HKLM,"Software\matrix42\Software Depot","HomeServer"%\Values$\UserValues\%UserDomain%

; Maschinenabhängige Variablen
; machine dependent variables
;VM_<Variable>=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,<Variable>%%

; Userabhängige Variablen
; user dependent variables
;VU_<Variable>=%%%V_UserValuesPath%\%WindowsUser%.ini,%WindowsUser%,<Variable>%%

; !!! Setzen der entsprechenden ReplaceEnv Befehle für die Variablen im Abschnitt [Product] nicht vergessen!!!
; !!! Don't forget to set the appropriate ReplaceEnv instructions for the variables in the section [Product]!!!

;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) | (%V_PM3Revision% == 0 & %V_PM3LoopCount% == 0) Then "Shutdown" EndIf

[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\%DeveloperName%\%ProductName%\%Version%\Setup","Revision",0x00000000,"1"

[Reg:Revision0]
HKLM,"SOFTWARE\%DeveloperName%\%ProductName%\%Version%\Setup","Revision",0x00000000,"0"

Die Datei Exceptions.txt habe ich einfach leer erstellt.

ARemus
Posts: 139
Joined: 15. Apr 2013, 13:04
Contact:

Re: PatchManagement v3 - Herunterfahren

Post by ARemus » 25. Jun 2014, 11:45

Ok. Wer lesen kann ist klar im Vorteil. Die Excpionlist ist für Rechner, die ausgenommen sind.

Locked

Return to “Patch Management (EOL)”

Who is online

Users browsing this forum: No registered users and 3 guests