Update Software Log /Software Status

Moderatoren: MVogt, moderators

Antworten
Viper9000
Beiträge: 307
Registriert: 13. Okt 2005, 20:44
Kontaktdaten:

Update Software Log /Software Status

Beitrag von Viper9000 » 05. Sep 2014, 14:02

Hallo zusammen,

ich hatte öfter mal das Problem, dass die Statusanzeige bzw. das Softwarelog eines Clients nicht der tatsächlichen Installation auf dem Client entsprach. Aus dem Grund habe ich ein Skript geschrieben, welches den clientseitigen Status mit der DDC vergleicht und entsprechend nochmal SoftwareLog bzw. Inv Datei erzeugt. Ziel ist es den Status in der Empirum Console zu aktualisieren.

Fehlerhafte Statusanzeigen durch:
z.B. Update von Net Framework und Visual C++ 2010, da der Agent selbst diese Middleware benötigt
z.B. Syncverluste von LogFiles, verworfene Logfiles aufgrund von Fehlern in der Logdatei
...

Voraussetzung zur Ausführung des Skriptes:
- Empirum Advanced Agent muss installiert sein.
- Powershell 2.0 oder höher

Was tut das Skript allgemein:
Es liest die lokal gecachte DDC-Datei ein und schaut für jede Software in der DDC, ob der spezifische Empirum Registry Ast für die Software da ist (HKLM\Software\Hersteller\Produktname\Version). Wenn ja dann werden die Werte, wie Installationszeit usw. ausgelesen und es wird eine neue Logdatei lokal im Empirum Agent Verzeichnis erzeugt, wo der Status auf Install Success steht. Am Ende wird noch ein Full Inventory gemacht und ebenfalls im entsprechenden Verzeichnis gespeichert. Über die üblichen Syncmechanismen werden diese Dateien zum Empirum Master gesynct und dort importiert und damit der Status aktualisiert.

Folgende Dinge habe ich berücksichtigt:
- Unterstützung von User und Machine Ast
- Unterstützung von AW Anteil in der Success Message ( Install (User), Install (Machine), Install))
- Ermitteln des lokalen Empirum Verzeichnisse via Registry
- Ergänzung des DisplayNames aus der SwDepot.dds, sollte dieser noch nicht im Registry Ast existieren (wichtig für den Log Status, da dort dieser Wert entscheidend ist. Der DisplayName wird nicht geschrieben, wenn Pakete via Setup.exe und nicht via Swdepot installiert wurden oder wenn der Agent abstürzt (siehe Visual C++ 2010))
- Ermitteln des Dienste Accounts für den Agent aus dem System
- Ermitteln des User Accounts aus der Umgebungsvariable
- Aufrunden der Zeitangabe aus der Registry auf z.B. 12:53:59, damit diese Statusmeldung innerhalb der Minute am aktuellsten ist. Hintergrund in der Registry steht nur HH:MM und das SWDepotLog arbeitet nach HH:MM:SS. Da das Inventory auf die Minute abrundet, würde ein fehlerhafter Logeintrag nur überschrieben werden, wenn im Inventory (auslesen aus der Registry) z.B. auf 12:54 steht. Nachteil dieser Aktion. Es werden alle Statusmeldungen im Softwarelog auf HH:MM:59 aktualisiert, sofern der Eintrag in der Logdatei aktueller ist.


# Usage: run powershell script file from command line
# First argument: machine or user mode - compares machine or currentuser hive with ddc file
# Second argument: netbios name of the windows domain
# Usage example:
# powershell -executionpolicy unrestricted -file "C:\Temp\UpdateSwDepotLog.ps1" "Machine" "TestDom"
# powershell -executionpolicy unrestricted -file "C:\Temp\UpdateSwDepotLog.ps1" "User" "TestDom"


Das Skript soll nur eine Hilfe sein. Anregungen erwünscht. Fehler sollen gemeldet werden. Jeder kann es anpassen und auf eigenes Risiko verwenden.



Gruß Viper
Dateianhänge
UpdateSwDepotLogStatus.zip
Skriptdatei Update Status
(2.64 KiB) 441-mal heruntergeladen

Hasengrube
Beiträge: 58
Registriert: 12. Sep 2009, 22:11
Kontaktdaten:

Re: Update Software Log /Software Status

Beitrag von Hasengrube » 01. Okt 2015, 09:21

Mhhh.. aus 2014 und noch kein KOmmentar?

Sehr sehr geiles Script - vielen Dank.

Aus welchem Grund auch immer habe ich immer wieder im Statusmonitor gelbe Punkte trotz erfolgreicher Installation. Damit scheinen die alle zu verschwinden.

Vielen Vielen Dank

Uwe

MarkusT
Beiträge: 66
Registriert: 11. Dez 2013, 14:31
Kontaktdaten:

Re: Update Software Log /Software Status

Beitrag von MarkusT » 24. Aug 2017, 16:16

Hallo,

vielen Dank für dieses Skript! Leider machen manche Pakete ab und an Zicken und bleiben auf Gelb, damit werden wir sie hoffentlich los.

Leider habe ich jedoch ein Problem beim Einsatz. im SwDepot Log wird im Maschinenteil immer nur "Empirum Inventory" ausgegeben.
Das ist das einzige Paket welches wir automatisch im Hintergrund aktualisieren lassen um aktuelle Inventardaten zu haben.
In der DDC der Maschine steht jedoch noch weitaus mehr drin was er finden und ausgeben müsste.
Hat das Skript schon jemand mit der Version 16.1 erfolgreich getestet oder liegt das Problem wo anders?

Wenn ich das Skript für den User aufrufe wird außer der Überschrift leider gar nichts eingetragen.

Beim Inventory Teil ist mir aufgefallen, dass die Variable $EmpirumMaster überhaupt nicht gesetzt ist über das Skript.
Habe dies dann noch nachgetragen mit der Abfrage analog der DDS, das klappt einwandfrei!

Viele Grüße
Markus
Matrix42 Workspace Management: 9.1.0.2546
Matrix42 Client Management: 18.0.3.33905

Antworten

Zurück zu „Software Management“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste