Dokumentation
Einführung
Arbeitsweise und Funktionsumfang
Smart Software Synchronisation (im Folgenden SSS genannt) ist ein Programm zum Synchronisieren von Softwareinstallationen für das Betriebsystem Windows, insbesondere für den Einsatz in Windows Netzwerken, wo die Software mehrerer Computer zentral verwaltet werden soll. Hierzu setzt SSS servergespeicherte, textbasierte Konfigurationsdateien ein, deren Aufbau weiter unten erläutert wird.
Das Prinzip nach dem SSS arbeitet ist Folgendes: In einer Konfigurationsdatei werden Softwarepakete definiert und es wird angegeben, durch welche Programmaufrufe diese zu installieren und deinstallieren sind. Diese Softwarepakete werden dann zu Softwaregruppen zusammengefasst. Die Softwaregruppen können ihrerseits den Computern im Netzwerk zugewiesen werden. SSS sorgt dann dafür, dass alle Softwarepakete, die den Computern indirekt über die Softwaregruppen zugewiesen sind, auf den entsprechenden Computern installiert werden.
SSS ist dabei in der Lage, Abhängigkeiten zwischen Softwarepaketen zu berücksichtigen. Wenn Abhängigkeiten zwischen Softwarepaketen in der Konfigurationsdatei angegeben werden, ermittelt SSS automatisch die richtige (De)Installationsreihenfolge für Softwarepakete.
Die Installations- und Deinstallationsvorgänge werden von SSS in Logdateien protokolliert, so dass durch den Administrator eine Kontrolle der Softwaresynchronisierung durchgeführt werden kann.
Im folgenden werden die wichtigsten Features von Smart Software Synchronisation stichpunktartig zusammengefasst:
- Verteilung und Synchronisation von Software in Windows Netzwerken (sowohl MSI als auch Setup-basiert)
- Die Konfiguration erfolgt über zentral gespeicherte, textbasierte Konfigurationsdateien, über die Software und Softwaregruppen definiert werden
- Synchronisation von Computern mit mehreren Softwaregruppen
- Vererbung und Erweiterung von Softwaregruppen
- Berücksichtigung von Abhängigkeiten zwischen Softwarepaketen sowie von Installationsreihenfolgen und Prioritäten (benötigt z.B. eine zu installierende Software A die Software B, dann wird B automatisch installiert)
- Logfunktion zur zentralen Überprüfung der (De)Installationsvorgänge
- Installation und Deinstallation von Software durch Angabe von Installations- und Deinstallationskommandos (im Falle von MSI-Paketen per MSI-Exec)
- Die Softwareverteilung per Gruppenrichtlinien kann je nach Wunsch vollständig ersetzt bzw. erweitert werden
Betriebsarten
Check-Modus
SSS kennt zwei Betriebsarten: Der sog. Check-Modus dient der Überprüfung der Konfigurationsdatei sowie zur Vorschau der bei einer Synchronisation durchzuführenden Aktionen. Enthält die Konfigurationsdatei Fehler, so wird in einem Meldungsfenster darauf hingewiesen. Ist die Konfigurationsdatei fehlerfrei, so wird für den per Kommandozeilenparameter angegebenen Computer eine Liste der nach einer erfolgreichen Synchronisation installierten Softwarepakete ausgegeben. Nach der Synchronisation installierte Pakete sind durch ein Häkchen markiert.
- I zeigt an, dass die angegebene Software beim Synchronisationsvorgang installiert wird.
- R zeigt an, dass die angegebene Software beim Synchronisationsvorgang deinstalliert wird.
- Das "Recycling-Symbol" zeigt an, dass die angegebene Software beim Synchronisationsvorgang reinstalliert wird.
Die Kommandozeile für einen Aufruf im Check-Modus lautet: sss.exe –check Konfigurationsdatei Computername Logverzeichnis INI-Verzeichnis. SSS speichert den Installationsstatus der einzelnen Programme in einer INI-Datei. Das INI-Verzeichnis gibt dabei an, wo diese Dateien liegen.
Beispiel:
sss.exe –check sss.txt MARS \\pazifik\log \\pazifik\ini
Run-Modus
Im Run-Modus findet die eigentliche Softwaresynchronisation statt. Es wird anhand der Konfigurationsdatei und der auf den Clients installierten Software ermittelt, welche Software de- bzw. installiert werden muss und die erforderlichen Aktionen durchgeführt.
Die Kommandozeile für einen Aufruf im Run-Modus lautet: sss.exe –run Konfigurationsdatei Computername Logverzeichnis
Beispiel:
sss.exe –run sss.txt %ComputerName% \\pazifik\log \\pazifik\ini
Installation
Installieren Sie SSS entweder lokal durch ausführen des Setup-Programmes, oder erstellen Sie auf einem Ihrer Server eine Freigabe und installieren Sie SSS dort hin. Erstellen Sie dann eine oder mehrere Konfigurationsdateien und kopieren Sie diese in das SSS Installationsverzeichnis (Das Erstellen von Konfigurationsdateien wird weiter unten beschrieben). Es empfiehlt sich, für die Installationspakete der zu verteilenden Anwendungen Unterverzeichnisse innerhalb eben angelegten Freigabe zu erstellen.
Aufruf als Startskript
In Verbindung mit Windows-Netzwerken ist es am einfachsten, SSS als Computer-Startskript auf den Clients auszuführen, um die Softwaresynchronisation durchzuführen (zur Anleitung siehe [1]). Es ist sinnvoll, den Aufruf von SSS aus einer Batchdatei heraus vorzunehmen, mit deren Hilfe ein temporäres Drivemapping eingerichtet wird. Dies ist für Installer nötig, die keine UNC-Pfade akzeptieren.
ACHTUNG: Wenn Sie SSS als Computerstartskript aufrufen, achten Sie darauf, in den Gruppenrichtlinien den Timeout für Computerstartskripte auf einen ausreichenden Wert zu setzen!
ACHTUNG 2: Startskripte werden als Benutzer LocalSystem ausgeführt. Dieser hat standardmäßig auf dem lokalen System Administratorrechte. Es kann aber jedoch vorkommen, dass dieser Benutzer keinen Zugriff auf das Netzwerk, und somit nicht auf die Freigabe mit den Installationspaketen hat. Sie gehen am besten folgendermaßen vor:
- Damit dieser Benutzer auf die Netzwerkfreigabe mit den Installationsdateien Zugriff hat, geben Sie der Domänen-Benutzergruppe Domänencomputer lesende Rechte auf die benötigten Freigaben. Für das Logverzeichnis und gegebenenfalls INI-Verzeichnis sollte die Benutzergruppe Domänencomputer schreibende Rechte besitzen!
- Sollte der Netzwerkzugriff dann noch nicht funktionieren, stellen Sie nach Microsoft KB Artikel 124184 sicher, dass der Benutzer LocalSystem auf die entspechenden Netzwerkfreigaben zugreifen kann (auf DFS Freigaben kann nach meiner Erfahrung per default zugegriffen werden).
Branding
Wenn gewünscht, kann durch Editieren der Datei sss.ini ein Branding vorgenommen werden, indem der Pfad zu einer Bitmap-Datei sowie die drei Zeilen der Überschrift angegeben werden. Die Höhe der Bitmapdatei sollte 48 Pixel nicht überschreiten. Die Breite des Bitmaps kann in Abhängigkeit zur Länge der Überschriften beliebig gewählt werden. Im Screenshot weiter oben ist z.B. ein Branding für das Institut für Wasserbau und Wasserwirtschaft der RWTH Aachen eingerichtet.
Tutorial
Dieses Tutorial führt Sie in die Erstellung von Konfigurationsdateien für SSS ein. Es wird hier nicht im Detail auf alle Möglichkeiten eingegangen. Für eine vollständige Beschreibung aller Syntaxelemente ziehen Sie bitte die Syntaxreferenz weiter unten zu Rate.
Minimale Konfigurationsdatei
Im Folgenden ist eine minimale Konfigurationsdatei für SSS aufgeführt. Jede Konfigurationsdatei für SSS enthält
- genau einen Configuration Abschnitt
- eine oder mehrere Software Abschnitte
- eine oder mehrere SoftwareGroup Abschnitte.
Über die Softwareabschnitte werden die zu verteilenden Softwarepakete inklusive Installations- und Deinstallationskommando definiert. Über die Softwaregruppen werden dann ein oder mehrere Softwarepakete zu Gruppen zusammengefasst. Schließlich werden im Configuration Abschnitt den Computern ein oder mehrere Softwarepakete zugewiesen. SSS sorgt dafür, dass auf den Computern immer denau diejenige Software installiert ist, die den Computern durch die Angabe von Softwaregruppen zugewiesen ist.
Das folgende Beispiel definiert die Software Firefox 1.0.6 sowie die Softwaregruppe Internet. Dem Computer mit dem Hostname MARS wird die Softwaregruppe Internet zugewiesen. Wird SSS auf dem Computer MARS mit dem Kommandozeilenargument -run gestartet, so wird Mozilla Firefox 1.0.6 installiert, sofern dies nicht schon durch einen früheren Aufruf von SSS geschehen ist. Was schon installiert worden ist, und was nicht, merkt sich SSS über INI-Dateien.
# Kommentar bis zum Zeilenende
Configuration
{
Computer "MARS" Sync With "Internet"
}
SoftwareGroup "Internet"
{
Use "Firefox 1.0.6"
}
Software "Firefox 1.0.6"
{
Install `\\pazifik\sss\firefox_1.0.6\setup.exe –ms –ira`
Uninstall `%SystemRoot%\UninstallFirefox.exe –ms –ira`
}
Inhalt der INI-Dateien
Beim Durchführen der Synchronisation legt SSS in einer Ini-Datei den Installationsstatus der einzelnen Softwarepakete ab. Nachfolgend ein Beispiel für eine solche INI-Datei:
[Status] Mozilla Firefox 1.0.6=1 [SSS] Status=1 Synchronised=1
Unter dem Abschnitt Status wird für jedes definierte Softwarepaket gespeichert, ob es installiert ist oder nicht. Dabei steht
- 0 für nicht installiert
- 1 für installiert
- 2 für Neuinstallation bei der nächsten Synchronisierung
Im Abschnitt SSS ist Status
- auf 1 gesetzt, wenn bei der Synchronisation keine Fehler aufgetreten sind
- auf 2 gesetzt, wenn keine Fehler aufgetreten sind, aber ein Neustart durchgeführt wird
- auf 0 gesetzt, wenn ein Fehler aufgetreten ist.
Unter Synchronised wird gespeichert, ob die Synchronisation vollständig ist (=1), oder ob die Synchronisation unvollständig ist bzw. ob (De)Installationsfehler aufgetreten sind (=0).
Wildcards in Computernamen
Unterstützt ab Version 0.9.8! Für Computernamen können Wildcards verwendet werden, um mehreren Computern in einer Zeile die gleiche Softwarekonfiguration zuzuweisen. Das * steht dabei für eine beliebige Zeichenfolge (auch die leere Zeichenfolge), das ? für ein beliebiges Zeichen. Das folgende Beispiel weist dem Computer MARS die Softwaregruppe Internet zu. Allen anderen Computern wird die Gruppe Basis zugewiesen:
Configuration
{
Computer "MARS" Sync With "Internet"
Computer "*" Sync With "Basis"
}
Bei der Benutzung von Wildcards ist auf die Reihenfolge der Definitionen zu achten. Folgendes Beispiel führt NICHT zum gewünschten Resultat!!!:
Configuration
{
Computer "*" Sync With "Basis"
Computer "WB??" Sync With "Internet"
}
In diesem Beispiel wird z.B. dem Computer WB11 die Softwaregruppe Basis anstatt Internet zugewiesen.
Deinstallation von Software
Folgendes Beispiel zeigt, wie es möglich ist Software zu deinstallieren. Es wird die Software Thunderbird 1.0.6 definiert. Diese wird allerdings keiner Softwaregruppe zugewiesen und folglich auch nicht dem Computer MARS. Daher wird Thunderbird, falls es auf MARS installiert ist, beim nächsten Synchronisationsvorgang deinstalliert.
Configuration
{
Computer "MARS" Sync With "Internet"
}
SoftwareGroup "Internet"
{
Use "Firefox 1.0.6"
# Use "Thunderbird 1.0.6"
}
Software "Firefox 1.0.6"
{
Install `\\pazifik\sss\firefox_1.0.6\setup.exe –ms –ira`
Uninstall `%SystemRoot%\UninstallFirefox.exe –ms –ira`
}
Software "Thunderbird 1.0.6"
{
Install `\\pazifik\sss\Thunderbird_1.0.6\setup.exe –ms –ira`
Uninstall `%SystemRoot%\UninstallThunderbird.exe –ms –ira`
}
Reinstallieren von Software
Wird ein INI-Datei Eintrag für eine Software manuell auf den Wert 2 gesetzt, so wird die jeweilige Software bei der nächsten Synchronisation reinstalliert.
Softwareupdates
In diesem Beispiel wird Mozilla Firefox 1.0.6 durch die Version 1.0.7 ersetzt. Erkennt SSS, dass auf einem Computer noch die Version 1.0.6 installiert ist, so wird diese deinstalliert und durch die neue Version ersetzt. Zum Durchführen des Updates ist das Replace Schlüsselwort nicht unbedingt erforderlich. Replace führt lediglich dazu, dass ein Fehler angezeigt wird, wenn eine zu ersetzende Software per Use einer Softwaregruppe zugewiesen wird. Dies ist manchmal hilfreich beim Aktualisieren der Konfigurationsdatei.
Configuration
{
Computer "MARS" Sync With "Internet"
Computer "MERKUR" Sync With "Internet"
Computer "VENUS" Sync With "Internet"
}
SoftwareGroup "Internet"
{
Use "Firefox 1.0.7"
}
Software "Firefox 1.0.7"
{
Replace "Firefox 1.0.6"
Install `\\pazifik\sss\firefox_1.0.7\setup.exe –ms –ira`
Uninstall `%SystemRoot%\UninstallFirefox.exe –ms –ira`
}
Software "Firefox 1.0.6"
{
Install `\\pazifik\sss\firefox_1.0.6\setup.exe –ms –ira`
Uninstall `%SystemRoot%\UninstallFirefox.exe –ms –ira`
}
Abhängigkeiten
Manchmal besteht eine Abhängigkeit zwischen Softwarepaketen. Die Syntax von SSS stellt das Schlüsselwort Require zur Verfügung, über das Abhängigkeiten definiert werden können. Es stellt sicher, dass die Software, welche durch dieses Schlüsselwort angegeben ist, ebenfalls installiert wird, wenn ein zur Installation vorgemerktes Softwarepaket durch die Angabe des Require Schlüsselwortes dies verlangt. Beispiel: „.NET SDK 2.0“ wird installiert, obwohl es nicht per Use einer Softwaregruppe zugewiesen wurde, da „Visual Studio 2005“ per Use eingebunden ist und von „.NET SDK 2.0“ abhängt. First gibt an, dass zusätzlich die Installationsreihenfolge zu beachten ist. First ".Net SDK 2.0" stellt sicher, dass ".NET SDK 2.0" auf jedenfall vor "Visual Studio 2005" installiert wird (Ist nur Visual Studio 2005 installiert, so wird es deinstalliert und dann das .NET SDK sowie Visual Studio in der richtigen Reihenfolge installiert.)
Configuration
{
Computer "MARS" Sync With "Programmierung"
}
SoftwareGroup "Programmierung"
{
Use "Visual Studio 2005"
}
Software "Visual Studio 2005"
{
Require ".NET SDK 2.0"
First ".NET SDK 2.0"
Install `...`
Uninstall `...`
}
Software ".NET SDK 2.0"
{
Install `...`
Uninstall `...`
}
Prioritäten
Eine weitere Möglichkeit die Installationsreihenfolge von Softwarepaketen zu beeinflussen bietet die Angabe von Prioritäten mit Hilfe des Schlüsselwortes Priority. Standardmäßig haben alle Softwarepakete eine Priorität von 1. Durch Priority kann eine Priorität zwischen 1 und 9 gewählt werden. Die Vorgehensweise ist folgendermaßen: Pakete höherer Priorität werden vor Paketen niedriger Priorität installiert. Pakete niedriger Priorität werden vor Paketen höherer Priorität deinstalliert. Beachte: Eine Software mit Priorität x kann nicht von einer Software mit Priorität <x durch die Angabe von Require abhängen!
Configuration
{
Computer "MARS" Sync With "Alles"
}
SoftwareGroup "Alles"
{
Use "TUGZip 3.4"
# Wichtige Systemupdates
Use "Win2000 SP4 Rollup"
}
Software "TUGZip 3.4"
{
Install `...`
Uninstall `...`
}
Software "Win2000 SP4 Rollup"
{
Priority 9
Install `...`
Uninstall `...`
}
Erweiterung von Softwaregruppen
Mittels des Schlüsselwortes Extend können Softwaregruppen erweitert oder mehrere Softwaregruppen zu Einer zusammengefaßt werden.
Configuration
{
Computer "MARS" Sync With "Workstation"
}
SoftwareGroup "Workstation"
{
Extend "Grafik"
Extend "Office"
}
SoftwareGroup "Grafik"
{
Use "Adobe Photoshop CS2"
}
SoftwareGroup "Office"
{
Use "Microsoft Office 2003"
}
Software "Adobe Photoshop CS2"
{
Install `...`
Uninstall `...`
}
Software "Microsoft Office 2003"
{
Install `...`
Uninstall `...`
}
Variablen
Sie können im Configuration-Abschnitt Variablen definieren, die Strings oder Kommandos enthalten können:
Configuration
{
Set $ROOT = `\\Server\SSS\Repository`
Set $FIREFOX_DIR = `$ROOT\firefox` # Variableninterpolation im Kommando
Computer "MARS" Sync With "Internet"
}
SoftwareGroup "Internet"
{
Use "Firefox 1.0.6"
}
Software "Firefox 1.0.6"
{
Install `$FIREFOX_DIR\setup.exe –ms –ira` # Variableninterpolation
Uninstall `%SystemRoot%\UninstallFirefox.exe –ms –ira`
}
Installationsstatus anhand von Registryeinträgen und Dateien erkennen
Über die Schlüsselwörter ExistanceRegKey oder ExistanceFile in einem SoftwareßAbschnitt kann optional für einzelne Softwarepaketefestgelegt werden, dass der Installationsstatus eines Programmes nicht der INI-Datei entnommen wird, sondern anhand eines existierenden Registryschlüssels oder einer existierenden Datei ermittelt wird:
Software "Mozilla Firefox"
{
ExistanceFile `%ProgramFiles%\Mozilla Firefox\Firefox.exe`
...
}
Syntaxreferenz
Diese Syntaxreferenz beschreibt alle Syntaxelemente der SSS Version 0.9.8 Konfigurationsdateien. Fett gedruckte Teile entsprechen dabei Schlüsselwörtern, welche genau so wie unten aufgeführt geschrieben werden müssen. Kursiv geschriebene Ausdrücke sind vom Benutzer frei wählbar. Teile in Eckigen [ ] Klammern sind können null oder einmal vorkommen, Teile welche in ( )* eingeschlossen sind beliebig oft.
Format
Aufbau
SSS Konfigurationsdateien sind in drei Abschnitte gegliedert:
- Genau eine Configuration-Sektion
- Beliebig viele SoftwareGroup-Sektionen
- Beliebig viele Software-Sektionen
Formatierung
Leerzeichen wie Space, Tabulator und Newline werden ignoriert.
Groß- und Kleinschreibung
Groß- und Kleinschreibung wird beachtet.
Kommentare
Kommentare werden mit einem Rautezeichen # eingeleitet und erstrecken sich bis zum Zeilenende.
Namen
Namen für Computer, Software sowie Softwaregruppen werden in Strings angegeben, das heißt in " " Zeichen eingeschlossen. Beispiel: "Mozilla Firefox 1.0.7"
Pfade, Dateinamen und Kommandos
Programmaufrufe bzw. Pfad- und Dateinamen werden in Kommandos angegeben, das heißt in ` ` Zeichen eingeschlossen. Es wird Umgebungsvariablensubstitution durchgeführt. Beispiel: `%SystemRoot%\uninstall.exe` würde je nach System z.B. durch `c:\windows\uninstall.exe` substituiert.
Configuration-Abschnitt
Die Configuration Sektion darf genau ein Mal in der Konfigurationsdatei vorkommen. Der Grundsätzliche Aufbau der der Sektion sieht folgendermaßen aus:
Configuration { Parameter }
Zulässige Parameter sind:
| RegKey "Unterschlüssel" | Gibt den Unterschlüssel der Registry an, in dem erfolgreiche (De)Installationsvorgänge gespeichert werden. Standard ist SOFTWARE\SSS. Als Registryschlüssel dient immer HKEY_LOCAL_MACHINE.
|
| IniPath `Absoluter Pfad` | Ab Version 0.9.4: Gibt das Verzeichnis an, in dem die INI-Dateien für den Installationsstati der Softwarepakete gespeichert werden. Die Dateien für die einzelnen Computer heißen SSS_%ComputerName%.ini.
|
| HideClientWindows | Versteckt Fenster von (De)Installationsprogrammen. |
| MinimizeToTray | Ab Version 0.9.4: Versteckt SSS im System-Tray. |
| Computer "Name" Sync With "Softwaregruppe" ( , "Softwaregruppe" )* | Gibt an, dass der Computer mit Netzwerknamen Name mit den angegebenen Softwaregruppen synchronisiert werden soll. Das heißt, nach erfolgreicher Synchronisation ist auf dem Computer Name genau die Software installiert, welche durch die Softwaregruppen angegeben ist. |
| Set $Variablenname = "String" oder `Kommando` | Ab Version 0.9.4: Definiert eine Variable und weist ihr einen String oder ein Kommando zu. Variablennamen dürfen aus Buchstaben, Ziffern und dem Zeichen _ bestehen. |
| RedirectOutputPath `Absoluter Pfad` | Ab Version 0.9.8: Gibt das Verzeichnis an, welches für die Ausgabeumlenkung (Stdout und Stderr) verwendet wird. |
| RedirectStdOut 0 oder 1 | Ab Version 0.9.8: Gibt an, ob die Standardausgabe der (De)Installationskommandos umgelegt werden soll. Kann auch in den Software-Sektionen einzeln für jede Software definiert werden. |
| RedirectStdErr 0 oder 1 | Ab Version 0.9.8: Gibt an, ob StdErr der (De)Installationskommandos umgelegt werden soll. Kann auch in den Software-Sektionen einzeln für jede Software definiert werden. |
| RedirectOutput 0 oder 1 | Ab Version 0.9.8: Faßt RedirectStdOut und RedirectStdErr zusammen. |
SoftwareGroup-Abschnitt
Die SoftwareGroup-Sektion darf mehrmals in der Konfigurationsdatei vorkommen (für jede zu definierende Softwaregruppe ein mal). Der grundsätzliche Aufbau der SoftwareGroup-Sektion sieht folgendermaßen aus:
SoftwareGroup "Softwaregruppenname" { Parameter }
Die zugelassenen Parameter sind:
| Use "Software" ( , "Software" )* | VORKOMMEN: NULL, EIN ODER MEHRMALS
Faßt die angegebenen Einträge Software zur Softwaregruppe mit Namen Softwaregruppenname zusammen. Wird die Softwaregruppe in der Configuration-Sektion einem Computer zugewiesen. So werden alle hier angegebenen Softwarepakete zur Installation vorgemerkt. |
| Extend "Softwaregruppe" ( , "Softwaregruppe" )* | VORKOMMEN: NULL, EIN ODER MEHRMALS
Faßt die angegebenen Softwaregruppen zur Softwaregruppe Softwaregruppenname zusammen. Weiterhin können mit Use zusätzliche Softwarepakete angegeben werden. |
Software-Abschnitt
Die Software-Sektion darf mehrmals in der Konfigurationsdatei vorkommen (für jede zu definierende Software ein mal). Der grundsätzliche Aufbau der Softwaresektion sieht folgendermaßen aus:
Software "Softwarename" { Parameter }
Die zugelassenen Parameter sind:
Installation und Deinstallation
| Install `Installationsprogramm` | VORKOMMEN: GENAU EIN MAL PRO SEKTION
Gibt den Pfad zur ausführbaren Datei des Installationsprogrammes an (inklusive Parameter).
Nach erfolgreicher Installation wird in der INI-Datei, welche die Installationsstati enthält (siehe Schlüsselwort IniPath), oder unter Wird ein leeres Installationskommando (``) angegeben, so wird immer von einer erfolgreichen Installation ausgegangen. |
| Uninstall `Deinstallationsprogramm` | VORKOMMEN: GENAU EIN MAL PRO SEKTION
Gibt den Pfad zur ausführbaren Datei des Deinstallationsprogrammes an (inklusive Parameter).
Nach erfolgreicher Installation wird in der INI-Datei, welche die Installationsstati enthält (siehe Schlüsselwort IniPath), oder unter Wird ein leeres Deinstallationskommando (``) angegeben, so wird immer von einer erfolgreichen Denstallation ausgegangen. |
| InstallRetCode Rückgabewert, (Rückgabewert)* | VORKOMMEN: NULL ODER EIN MAL
Ab Version 0.9.8: Gibt an, bei welchen Rückgabewerten des Installationskommandos die Installation als Erfolg gewertet wird. Wenn kein Rückgabewert per InstallRetCode angegeben wird, wird die Installation nur bei einem Rückgabewert von 0 als erfolgreich angesehen. |
| UninstallRetCode Rückgabewert, (Rückgabewert)* | VORKOMMEN: NULL ODER EIN MAL
Ab Version 0.9.8: Gibt an, bei welchen Rückgabewerten des Deinstallationskommandos die Deinstallation als Erfolg gewertet wird. Wenn kein Rückgabewert per UninstallRetCode angegeben wird, wird die Deinstallation nur bei einem Rückgabewert von 0 als erfolgreich angesehen. |
| IgnoreInstallRetCode | VORKOMMEN: NULL ODER EIN MAL
Ignoriert den Rückgabewert des Installationskommandos und geht immer von einer erfolgreichen Installation aus. Anderenfalls wird als Rückgabewert 0 verlangt, oder ein per InstallRetCode angegebener. |
| IgnoreUninstallRetCode | VORKOMMEN: NULL ODER EIN MAL
Ignoriert den Rückgabewert des Deinstallationskommandos und geht immer von einer erfolgreichen Deinstallation aus. Anderenfalls wird als Rückgabewert 0 verlangt, oder ein per UninstallRetCode angegebener. |
| RebootAfterInstall oder RebootAfterInstall Rückgabewert, (Rückgabewert)* | VORKOMMEN: NULL ODER EIN MAL
Geändert mit Version 0.9.8: Startet nach einer Installation neu unter folgenden Bedingungen: Wenn kein Rückgabewert angeben ist, wird nur bei einem Rückgabewert von 0 neugestartet. Ansonsten wird neugestartet, wenn der Rückgabewert des Installers einem der angegebenen entspricht. Weiterhin wird nur neugestartet, wenn die Installation erfolgreich war (siehe Schlüsselwörter InstallRetCode und IgnoreInstallRetCode). |
| RebootAfterUninstall oder RebootAfterUninstall Rückgabewert, (Rückgabewert)* | VORKOMMEN: NULL ODER EIN MAL
Geändert mit Version 0.9.8: Startet nach einer Deinstallation neu unter folgenden Bedingungen: Wenn kein Rückgabewert angeben ist, wird nur bei einem Rückgabewert von 0 neugestartet. Ansonsten wird neugestartet, wenn der Rückgabewert des Deinstallers einem der angegebenen entspricht. Weiterhin wird nur neugestartet, wenn die Deinstallation erfolgreich war (siehe Schlüsselwörter UninstallRetCode und IgnoreUninstallRetCode). |
| WaitAfterInstall Sekunden | VORKOMMEN: NULL ODER EIN MAL
Ab Version 0.9.4: Wartet nach Installation die angegebenen Sekunden. |
| WaitAfterUninstall Sekunden | VORKOMMEN: NULL ODER EIN MAL
Ab Version 0.9.4: Wartet nach Deinstallation die angegebenen Sekunden. |
| RedirectStdOut 0 oder 1 | Ab Version 0.9.8: Gibt an, ob die Standardausgabe des (De)Installationskommandos umgelegt werden soll. |
| RedirectStdErr 0 oder 1 | Ab Version 0.9.8: Gibt an, ob StdErr des (De)Installationskommandos umgelegt werden soll. |
| RedirectOutput 0 oder 1 | Ab Version 0.9.8: Faßt RedirectStdOut und RedirectStdErr zusammen. |
Prioritäten und Abhängigkeiten
| Priority Ganzzahl | VORKOMMEN: NULL ODER EIN MAL
Gibt die (De)Installationspriorität der Software an (zwischen 1 und 9). Standardmäßig ist die Priorität 1. Bei einer Installation werden erst die Softwarepakete mit höherer Priorität installiert. Bei einer Deinstallation werden erst die Softwarepakete mit niedriger Priorität deinstalliert. |
| Require `Benötigte Software` ( , `Benötigte Software` )* | VORKOMMEN: NULL, EIN ODER MEHRMALS
Gibt an, dass die Software Benötigte Software von Softwarename benötigt wird. Benötigte Software wird somit ebenfalls installiert, falls Softwarename zur Installation vorgesehen ist oder bereits installiert ist. |
| First `Software-Zuerst` ( , `Software-Zuerst` )* | VORKOMMEN: NULL, EIN ODER MEHRMALS
Stellt sicher, dass die Software Software-Zuerst vor Softwarename installiert wird, wenn Software zuerst installiert werden soll. Auch sinnvoll in Verbindung mit dem Schlüsselwort Require. |
| Replace `Veraltete-Software` ( , `Veraltete-Software` )* | VORKOMMEN: NULL, EIN ODER MEHRMALS
Gibt an, dass Softwarename die Software Veraltete-Software ersetzt. |
Überprüfung des Installationsstatus
| ExistanceRegKey Schlüssel ( Or oder And Schlüssel )*
Mit Schlüssel = [ RegistryRoot ] "Unterschlüssel" [, "Wert" [ = Zahl oder "Zeichenkette" ]] Mit RegistryRoot = HKEY_LOCAL_MACHINE oder HKEY_CLASSES_ROOT oder HKEY_LOCAL_CONFIG oder HKEY_CURRENT_USER oder HKEY_USERS | VORKOMMEN: NULL ODER EIN MAL
Wenn ein Registry-Unterschlüssel bzw. Registry-Unterschlüssel und Wert angegeben wird, dann wird anhand dieser überprüft, ob die zugehörige Software bereits installiert ist. Ansonsten geschieht dies über die INI-Datei mit den Installationsstati der Pakete (siehe Schlüsselwort Beispiele: ExistanceRegKey "Software\Mozilla Firefox" ExistanceRegKey HKEY_CURRENT_USER "Software\Mozilla Firefox" ExistanceRegKey HKEY_CURRENT_USER "Software\Mozilla Firefox", "VersionMajor" ExistanceRegKey HKEY_CURRENT_USER "Software\Mozilla Firefox", "VersionMajor" = 1 ExistanceRegKey "Software\Mozilla Firefox", "VersionMajor" = 1 And "Software\Mozilla Firefox", "VersionMinor" = 5 |
| ExistanceFile `Dateiname` ( Or oder And `Dateiname` )* | VORKOMMEN: NULL ODER EIN MAL
Der Installationsstatus der Software wird anhand des Vorhandenseins der angegebenen Datei(en) festgestellt. Per Or und/oder And kann angegeben werden, ob alle Dateien oder nur einzelne existieren müssen. |
