ConfigMgr: Automatisierte Softwarepaketierung und -bereitstellung

Gerade bei Standardsoftware ist die Paketierung und -bereitstellung sehr ermüdend und zeitraubend. Es gibt – wie in vorhergehenden Beiträgen bereits erwähnt –  gute Toolkits wie das PSAppDeployToolkit, um sich die Arbeit etwas zu vereinfachen. Dort herum habe ich ein paar Powershell Script als Proof of Concept gestrickt, die die Integration in den ConfigMgr vereinfachen sollen.

Das Script übernimmt folgende Funktionen:

  • Kopieren des PSAppDeployToolkits in einen neuen Ordner nach dem Schema “Hersteller\Softwarename”
  • Kopieren der Quelldateien in den “Files” Unterordner
  • Eintragen der Headerangaben ui der Software in deploy-application.ps1
  • Einfügen der korrekten Installations- und Deinstallationsbefehle in die Deploy-application.ps1
  • Erstellen eines Ordners im Devicebereich mit dem Herstellernamen
  • Erstellen einer Collection mit dem Softwarename und der Version
  • Erstellen eines Ordners im Applicationbereichs mit dem Herstellernamen
  • Erstellen einer Anwendung mit den Softwareangaben
  • Hinzufügen eines Deployment-Types zu der Anwendung
  • Eintragen des Installations- und Deinstallationsbefehlt in den Deployment-Type
  • Hinterlegen der korrekten Detectionmethode zu der Anwendung
  • Verteilen der Anwendung an eine definierten Distributionpoint Gruppe
  • Bereitstellen der Anwendung an die oben angelegte Collection

Dadurch sind alle wesentlichen Schritte für eine Verteilung abgedeckt. Aktuell werden noch keine Abhängigkeiten (Supersedence) zwischen verschiedenen Softwareversionen abgebildet.

Natürlich können die Scripte dies nicht ohne Basisinformationen durchführen. Daher existiert dazu eine appdefinition.xml Datei, in der die notwendigen Informationen hinterlegt sind.

Ich habe dabei versucht, alle Informationen, die automatisch ausgelesen werden können, nicht in der Datei zu hinterlegen. So wird bei einem MSI File dieses ausgelesen und daraus der Hersteller, der Softwarename und die Versionsnummer ermittelt. Genauso wird dabei der Productcode für die Detectionmethode ermittelt.

Es handelt sich bei diesen Scripten um ALPHA-Code, d.h. ich warne davor, die Scripte ohne ausführliche Tests in einer produktiven Umgebung einzusetzen!

Verwendung für die Mutigen:

  1. Auspacken des angehängten Zip-Files in einem Ordner auf dem Siteserver
  2. Auspacken einer aktuellen Version des PSAppDeployment Toolkits in einen separaten Ordner
  3. Anpassen der Konstanten in der main.ps1 Datei an die eigenen Sitenamen und Ordnerstrukturen
  4. eine passende appdefinition.xml Datei aus einem der nachfolgenden Posts herunterladen und zusammen mit den Quelldateien in einem extra Quellordner ablegen
  5. Ausführen der main.ps1 in einer administrativen Powershell mit dem einzigen Parameter appDefinition:  “.\main.ps1 -appDefinition .\IrfanViewPlugins\appdefinition.xml”
automateAppDeployment (Version 0.4) (139 downloads)
This entry was posted in automateAppDeployment, Configuration Manager, Deutsch, System Center, System Center 2012 and tagged , , . Bookmark the permalink.