WPKG Softwareverteilung

Eine kostenlose Softwareverteilung (Software Deploment) unter Windows mit Boardmitteln auf Basis von XML, über VBS Startup Script. Ohne Client Agent.

http://wpkg.org/

WPKG besteht im wesentlichen aus mehreren XML Dateien (host.xml, profiles.xml, package.xml) in denen die Softwarepakete und Installation definiert werden oder die „Host-zu-Softwarepaket“ Zuweisung vorgenommen wird und einem mächtigen VBS Script (wpkg.js) welches mittels verschiedener Commandline Parameter z.B. als Startup Script gestartet wird.

WPKG mit seinen XML Dateien liegt auf irgendeiner Freigabe (auch auf Samba/Linux). Der User mit dem das Startupscript gestartet wird muss natürlich mindestens Lese-Rechte auf dieses Verzeichnis besitzen.

host.xml

In dieser Datei werden Hosts einem Profil zugeordnet. Der Host kann über verschiedene Attribute erfasst werden. Darunter „Hostname“, „OS“, „Group“. Alle diese Felder können mittels RegExp auf eine Übereinstimmung überprüft werden.

Windows XP und Windows 7 ein Profil Names „base“ zuweisen. Diese in diesem Profil enthaltene Software bekommt jeder Rechner (mit entsprechendem OS)

<host os="professional.+5\.1\.\d{4}" profile-id="base" />  <!-- Windows XP professional -->
<host os="professional.+6\.1\.\d{4}" profile-id="base" /> <!-- Windows 7 professional -->

Windows XP dem Profil „easy-transfer“ zuweisen

<host os="professional.+5\.1\.\d{4}" profile-id="easy-transfer" />

Würden wir die Software im base Profil hinterlegen, würden auch Computer mit Windows 7 die Software easy-transfer zugewiesen bekommen.

AD Gruppe sw-adobe-flash zu Profil adobe-flash zuweisen

<host groups="sw-adobe-flash" profile-id="adobe-flash" />

profiles.xml

In dieser Datei wird einem Profil ein oder mehrere (Software-)Packages zugewiesen.
Durch Abhängigkeiten (depends) wird jedem Profil das „default“ Profil zugewiesen/vererbt. So ist es möglich die in dem „default“ Profil definierte SOFTWARE Variable in allen Packages zu nutzen. Dies ist der Grundpfad zu allen Setups.

Dieses Profil beinhaltet nur eine Variable die über „depends“ Anweisungen in jedem Profil übernommen wird.

<profile id="default">
  <variable name="SOFTWARE" value="\\server\wpkg\deploy"/>	
</profile>

Dieses Profil beinhaltet mehrere Packages. In der host.xml haben wird dieses Profil allen Windows XP und Windows 7 Computern zugewiesen.

<profile id="base">
  <depends profile-id="default" />
  <package package-id="adobeflash" />
  <package package-id="java" />
</profile>

Beispiel für eine einzelne Software

<profile id="tightvnc">
  <depends profile-id="default" />
  <package package-id="tightvnc" />
</profile>

packages.xml

In dieser Datei werden die Softwareinstallationen definiert. Ein beispiel Package:

<package
  id="adobeflash"
  name="Adobe Flash 11"
  revision="%version%"
  reboot="false" 
  priority="0">
 
  <variable name="version" value="11.9.900.152" />
 
  <check type="uninstall" condition="versiongreaterorequal" path="Adobe Flash Player .+ Plugin.*" value="%version%" />
 
  <install cmd='msiexec /qn /i "%SOFTWARE%\adobe\flash\%version%\install_flash_player_11_plugin.msi"' />
 
  <upgrade include="install" />
 
  <remove cmd='msiexec /qn /x "%SOFTWARE%\adobe\flash\%version%\install_flash_player_11_plugin.msi"' />
 
</package>

wpkg.js

Diese Datei beinhaltet die Logik und ist die einzige aktive Komponente.

Alle Packages entsprechend der zugeordneten Profile ausführen

cscript \\server\wpkg\wpkg.js /synchronize

Ein bestimmtes Package ausführen

cscript \\server\wpkg\wpkg.js /install:<package-id>
pub/wpkg.txt · Zuletzt geändert: 2014/01/13 13:03 von Marco Krage