Mit steigender Komplexität der IT-Umgebung erhöht sich auch der Aufwand für die Verwaltung dieser. Schnell ist der Punkt erreicht, an dem Automatisierung sinnvoll ist und viel Zeit sparen kann. Doch nicht immer ist offensichtlich, wie Verwaltungsschritte von einer graphischen Oberfläche hin zu einer Skript-basierten Lösung übertragen werden kann. Gerade im Falle der Internet Information Services (IIS) wird häufig ausschließlich der IIS Manager genutzt. Doch schon seit mehreren Versionen wird parallel eine Skript-Steuerung angeboten. In der Version 7.0 passiert das in der Gestalt der Appcmd.exe. Im Folgenden werdem einige grundlegende Funktionen dargestellt.

Dieses Tool befindet sich, bei installiertem IIS 7.0, im Verzeichnis system32 und kann mit folgendem Befehl angesprochen werden: %systemroot%system32inetsrvAPPCMD

Grundlegende Befehle

Die Befehle werden allgemein nach dem Muster APPCMD [Befehl] [Objekt] [/Parameter:Wert] angegeben. Zusätzlich kann mit /? die Hilfe ausgegeben werden. Beispielsweise gibt es allgemeine Informationen zur Handhabung der Appcmd.exe mit APPCMD /?.

Die Hilfe kann auf beliebig tiefer Ebene ausgegeben werden. Etwa APPCMD [Objekt] /? gibt die Befehle aus, die auf das angegebene Objekt anwendbar sind. Anschließend können per APPCMD [Befehl] [Objekt] /? wieder spezifischere Informationen angezeigt werden.

Dieser Artikel kann natürlich nicht alle Befehle abdecken. Daher möchte ich an dieser einige Beispiele vorstellen und dazu motivieren, häufig auf die Hilfefunktion zurückzugreifen. Diese enthält eine Liste aller Objekte und ihrer Befehle, sowie passende Anwendungsbeispiele. Ist eine Operation möglich, lassen sich dazu Informationen in der Hilfe finden.

Beispiel: Arbeiten mit Webseiten

Ein einfaches Anwendungsbeispiel ist die Arbeit mit dem Objekt SITE, also allen Webseiten, die im IIS betrieben werden. Zu diesem Zweck lassen sich über den Befehl APPCMD list site alle Seiten ausgeben. Die Ergebnisse lassen sich wahlweise mit Parametern wie /state:Stopped einschränken. In diesem Fall würden nur gestoppte Webseiten angezeigt werden. Als Ausgabe erhalten wir die Namen, Bindings und Status der Webseiten.

Diese Informationen lassen sich nun nutzen, um die Seiten anzusprechen und zu steuern. Durch APPCMD start site "Name der Seite" kann eine gestoppte Seite wieder gestartet werden. Respektive kann eine Seite durch APPCMD stop site "Name der Seite" gestoppt werden.

Auch das Bearbeiten von vorhandenen Objekten ist auf diese Weise möglich. Mittels APPCMD set site [Identifier] [/Eigenschaft:Wert] (Itentifier ist entweder der Name einer Seite oder eines ihrer Bindings) können die Eigenschaften einer Seite bearbeitet werden. Als Eigenschaften können hier etwa "/serverAutoStart:true" oder "/id:100" zum Ändern der ID angegeben werden.

Darüber hinaus können auf diese Weise auch neue Seiten erstellt werden. Dazu wird der Befehl APPCMD add site /name:NeueSeite /bindings:"http/*:81:" /physicalPath:"C:NeueSeite" genutzt um eine neue Webseite mit dem Namen "Neue Seite" anzulegen, deren lokales Verzeichnis C:NeueSeite ist, die über Port 81 des Servers erreichbar ist.