it-runs.de

Fujitsu DeskUpdate Version 5 – Automatisieren mit baramundi

Beitragsbild baramundi Shortcut

Durch einen Kommentar von Christoph in meinem YouTube Video wurde ich aufmerksam auf neue Update des Fujitsu Deskupdate Tools. Die Entwickler haben das Tool auf die Version 5.0.8 gebracht.

Wer noch die Version 4.x einsetzt, der findet in diesem Artikel alles was er benötigt um Fujitsu Deskupdate zum laufen zu bringen. Der angebotene Download funktioniert noch, so könnt ihr die ältere Datei noch verwenden. Diese wird aber nur noch von den älteren Modellen unterstützt. Eine detaillierte Auflistung der Modelle liegt mir leider nicht vor.

Was ist Fujitsu Deskupdate?

Fujitsu Deskupdate sorgt an eurem Fujitsu Computer, das kann ein Desktop oder Laptop sein, das die von Fujitsu verwalteten Treiber auf den neusten Stand sind. Hierzu zählen die Treiber von Chipsatz, Grafikkarte, Netzwerkkarte, RAID-Treiber, etc. und die von Fujitsu ausgelieferte Software. Unter bestimmten Umständen können auch Windows Updates installiert werden, dieses ist mir bisher aber noch nicht untergekommen.

Fujitsu DeskUpdate Version 5
Fujitsu DeskUpdate Version 5

Neben der normalen GUI Variante wird auch eine Kommandozeilen Variante angeboten. Das Programm muss nicht installiert werden, so ist es ebenfalls möglich das Programm von einem Netzlaufwerk zu starten. Eine Dokumentation sucht man vergeblich, auch über die Fujitsu Homepage wird man nicht fündig.

Der Weg zur Automatisierung mit baramundi

Ohne Dokumentation gibt es also nur “try-and-error”. Ich konnte aber einiges aus dem vorherigen Projekt entnehmen. So waren schon teile des Powershell-Skripts fertig, welches ich nur noch um einige Rückmeldungen angepasst habe. Aber dazu kommen wir weiter unten im Artikel.

Schritt 1: Dateien anschauen

Als erstes habe ich mir das eigentliche Verzeichnis vorgenommen, was liefert uns Fujitsu hier alles für neue Funktionen.

Fujitsu Deskupdate Version 5 – Dateien

Die ersten Dateien die man findet sind alle mit Caliburn.Micro gekennzeichnet. Caliburn.Micro ist ein Framework welches genutzt wird um Anwendungen im XAML Format zu erstellen. Wer noch mehr Informationen dazu haben möchte, hier gibt es noch mehr Lesestoff.

DeskUpdate.exe, startet das klassische DeskUpdate Programm. Mir sind keine Parameter bekannt die man beim Auruf verwenden kann um hier noch einen weiteren nutzen herauszuziehen. Interessant für denjenigen der das ganze Manuell an einer Workstation durchführen möchte. Nach dem Suchen werdet ihr feststellen, das er nur den Hinweis liefert – x Updates gefunden. Unten links gibt es die Erweiterte Ansicht in der Ihr auch alle Programmpakete findet.

Ducmd.exe, kein Logo 🙂 das sieht vielversprechend aus. Genau das haben wir gesucht, wenn wir das ganze aus einer Kommandozeile aufrufen erhalten wir schon mal ein paar Informationen aus dem System. Aber das ganze muss als Administrator ausgeführt werden.

DuCore.config.json, ist eine JSON Datei für die Steuerung der Updates. Hier kann z.B. der Systemwiederherstellungs-punkt ausgeschaltet werden. Dieser wird automatisch erzeugt wenn Treiber, Programme oder Updates eingespielt werden. Hier befindet sich auch die Proxy-Einstellung. Dazu kommen wir im nächsten Schritt.

Log4net.xml, genau das was der Name schon sagt, eine Logging Komponente. Viel mehr eine Bibliothek von Apache – hier gibt es noch mehr Informationen. Mir fehlte leider die Zeit das genauer zu prüfen. Wenn man sich diese Datei anschaut, wird einen aber schnell klar. Damit kann das Logging zentralisiert werden. Innerhalb dieser Datei findet man alle Informationen um die Datenbank zu erstellen.

An example of a SQL Server table that could be logged to:
</code>
	CREATE TABLE [dbo].[Log] ( 
	  [ID] [int] IDENTITY (1, 1) NOT NULL ,
	  [Date] [datetime] NOT NULL ,
	  [Thread] [varchar] (255) NOT NULL ,
	  [Level] [varchar] (20) NOT NULL ,
	  [Logger] [varchar] (255) NOT NULL ,
	  [Message] [varchar] (4000) NOT NULL 
	) ON [PRIMARY]
</code>

Zusätzlich dazu haben die Entwickler auch einen Eintrag hinterlassen, wie das Logging aktiviert werden kann.

An example configuration to log to the above table:
<code lang="XML" escaped="true">
            <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
  <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
  <connectionString value="data source=SQLSVR;initial catalog=test_log4net;integrated security=false;persist security info=True;User ID=sa;Password=sa"/>
  <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)"/>
  <parameter>
	<parameterName value="@log_date"/>
	<dbType value="DateTime"/>
	<layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}"/>
  </parameter>
  <parameter>
	<parameterName value="@thread"/>
	<dbType value="String"/>
	<size value="255"/>
	<layout type="log4net.Layout.PatternLayout" value="%thread"/>
  </parameter>
  <parameter>
	<parameterName value="@log_level"/>
	<dbType value="String"/>
	<size value="50"/>
	<layout type="log4net.Layout.PatternLayout" value="%level"/>
  </parameter>
  <parameter>
	<parameterName value="@logger"/>
	<dbType value="String"/>
	<size value="255"/>
	<layout type="log4net.Layout.PatternLayout" value="%logger"/>
  </parameter>
  <parameter>
	<parameterName value="@message"/>
	<dbType value="String"/>
	<size value="4000"/>
	<layout type="log4net.Layout.PatternLayout" value="%message"/>
  </parameter>
</appender>
</code>

Das ganze ist sehr vorbildlich, so sollte man dokumentieren.

Etwas versteckt ist noch ein Hardwarescanner der uns eine XML oder JSON Datei erzeugt, mit allen Informationen auf dem System. Unter pingcore\win7-x64\tools\ findet man die Datei HardwareScanner.exe. Ruft man diese mit den Parametern “XML machine.xml” wird im gleichen Verzeichnis eine XML Datei erstellt. Diese nutzt Fujitsu bestimmt dazu um die Informationen aus dem System zu lesen und zu prüfen welche Hardware verbaut ist.

Schritt 2: Ducmd auseinander nehmen

Über Ducmd wird also Fujitsu Deskupdate aus der Kommandozeile gestartet und installiert darüber auch anschließend die Updates. Über Ducmd.exe /? wird die Hilfe aufgerufen die eine kleine Unterstützung ist.

Fujitsu Deskupdate – Ducmd – Hilfe

Also geht es weiter mit den Aufschlüsseln der Kommandos die wir benötigen.

Schritt 3: Ducmd /WEB /LIST

Damit sollten wir also die Informationen erhalten, welche Updates heruntergeladen werden und installiert werden müssen. Eine einfache Ausgabe könnte so zum Beispiel aussehen.

ducmd 5.00.8.0
Copyright (c) 2017 Fujitsu Technology Solutions
DeskUpdate command line application

Computer Product Identification:
Product . . . . : ESPRIMO_P556
Board . . . . . : D3400-A1
Operating system: W10 (AMD64)
Marketing name  : ESPRIMO_P556

Installable packages:
     [ID] 4051 - Realtek PCI-E NIC Family all in one NDIS Driver for Windows 10,  [version] 10.026.0328.2018
     [ID] 4203 - Intel® HD Graphics (KabyLake),  [version] 100.6136 - 24.20.100.6136 - PV - 64bit
     [ID] 3841 - Intel AHCI 16.0.2.1086 PV,  [version] 16.0.2.1086 - PV
     [ID] 4127 - FUJ02E3 Device Driver 4.0.2.6 (DCU),  [version] 4.0.2.6
     [ID] 4237 - Workplace PowerSettings 2.20.0039 (64),  [version] 2.20.0039

Die Updates können nur gesucht werden, wenn auch eine Internetverbindung besteht. Sollten eure Clients eine direkte Internetverbindung haben, müsst ihr jetzt nichts weiter einstellen. Meistens ist aber ein Proxy-Server dazwischen. Die Einstellung könnt ihr in der DuCore.config.json vornehmen, dazu müsst ihr nur die folgenden Variablen ändern.

"Proxy": {
        "ProxyType" : 1,
        "_Comment_ProxyType0" : "0 = ProxyNone",
        "_Comment_ProxyType1" : "1 = ProxyAuto (default)",
        "_Comment_ProxyType2" : "2 = ProxyExplicit (uses ProxyUsername, ProxyPassword, ProxyServer)",
        "_Comment_ProxyType3" : "3 = ProxyAutoConfigUrl (uses ProxyAutoconfigUrl)",
        "_Comment_ProxyType4" : "4 = ProxyDefault",
        "_Comment_ProxyType5" : "5 = ProxyDefaultIe",
        "ProxyUsername" : "proxy1",
        "ProxyPassword" : "proxy2",
        "ProxyAutoconfigUrl" : "",
        "ProxyServer" : "192.168.168.207:808"
    },

Der ProxyType ist dabei entscheidend, ihr müsst also nur noch den für euch entsprechenden Type einstellen. Wird ein Kennwort für die Authentifizierung genutzt, so kann dieses über den Befehl:

Ducmd /SPPWD euer Kennwort

Schritt 4: Ducmd /INSTALL /WEB

Leider ist die Dokumentation von Fujitsu hier etwas unvollständig und fehlerhaft. Das Kommando Ducmd /INSTALL /WEB /DRV liefert einen Fehler “Fehlerhafte Kommandozeile“.

Wird das Programm aber richtig aufgerufen und es sind Update vorhanden, dann erscheint die folgende Meldung:

ducmd 5.00.8.0
Copyright (c) 2017 Fujitsu Technology Solutions
DeskUpdate command line application

Computer Product Identification:
Product . . . . : ESPRIMO P420
Board . . . . . : D3230-A1
Operating system: W7 (AMD64)
Marketing name  : ESPRIMO P420

Creating a system restore point
Package 0/6 downloaded
Package 1/6 downloaded
Package 2/6 downloaded
Package 3/6 downloaded
Package 4/6 downloaded
Package 5/6 downloaded
Package 6/6 downloaded
Package 1/6 installed
Package 2/6 installed
Package 3/6 installed
Package 4/6 installed
Package 5/6 installed
Installation finished

DeskUpdate requires a reboot to activate changes!!!

Damit sind alle Schritte klar und es muss nur noch in die baramundi Mangement Suite integriert werden.

Schritt 5: Powershell Scripte zum auswerten

Um das ganze etwas zu vereinfachen, habe ich zwei Powershell Scripte erstellt. Diese werden genutzt um die Programmaufrufe auszuwerten und an baramundi zurückzumelden. Die Beschreibung der Powershell Scripte würde den Rahmen hier sprengen, die Scripte sind von mir gut dokumentiert und selbst erklärend.

Schritt 6: baramundi Deploy Script – Update Check

Es werden zwei Deploy Scripte verwendet, eins um mittels Fujitsu Deskupdate einen Update Check durchzuführen. Und eins für den eigentlichen Update-Prozess.

In beiden baramundi Deploy Scripts sind die Variablen DeskUpdate und PowershellScript anzupassen.

baramundi Deploy Script – Variablen

Die Voraussetzung für die Powershell Scripte sind eine Version von 4.0 oder höher. Die aktuellste Powershell Version könnt ihr hier herunterladen.

Schritt 7: Variablen erstellen

Für die baramundi Deploy Scripte werden Variablen benutzt die noch angelegt werden müssen. Dieses geht über Konfiguration – Variablen. Hier legt ihr eine Client Variable mit dem Namen Updates an und als Typ wählt ihr Ein/Aus-Feld. Als Standardwert sollte Aus eingegeben.

baramundi Management Center – Variablen

Integration in die baramundi Management Suite

Um die Integration so einfach wie Möglich zu gestalten, habe ich euch ein bdx-Container erstellt. Diesen könnt ihr einfach importieren und auf eure Wünsche anpassen. Er enthält alle bds-Dateien, Powershell-Scripte und eine Fujitsu Deskupdate Installation.

Download “bdx - Fujistu DeskUpdate V5” Fujitsu DeskUpdate V5 1.4.zip – 3321-mal heruntergeladen – 52,44 MB

 

Update der Powershell Scripte und der bdx-Datei

Hier ist eine aktualisierte Version verfügbar.

Die mobile Version verlassen