Das Utility appcmd.exe von IIS für den Export und Import von Applicationpool und Sites
Der IIS-Manager ist die Verwaltungskonsole der Windows Internet Informationsdienste und ermöglicht die Verwaltung von Sites und Anwendungspools. Der IIS-Manager (inetmgr) unter Windows Server 2008 R2, Server 2012 und Server 2016 bietet jedoch mehr als die per GUI bereitgestellten Funktionen, einige für die Verwaltung wichtige Funktionen stehen nur als CLI Version zur Verfügung, unter %windir%\system32\inetsrv\ befindet sich das Utility appcmd.exe, mit diesem es möglich ist die Konfiguration, oder teile davon zu exportieren und zu importieren. Dadurch bietet sich die Möglichkeit Applicationpool und Sites auf andere IIS-Hosts zu übertragen, beispielsweise für IIS im Load-Balanced Betrieb, sollte keine SharePoint Farm zur Anwendung kommen.
Eine weitere Anwendungsmöglichkeit ist das Clonen von WebSites, dabei können einzelne WebSites und die dazugehörenden Anwendungspools exportiert werden, nach dem Export muss lediglich der SITE NAME und SITE ID in einem Editor geändert werden.
Hier in diesem Beispiel werden die WebServices des AIF Connectors für Dynamics AX kopiert um eine weitere Business Connector Instanz zu erstellen, hier mit neuem SITE.NAME=“AifWebServiceProd“ und mit der SITE.ID=“3″, die Site Id kann eine beliebige Zahl sein, darf jedoch in applicationHost.config noch nicht existieren.
Hierzu öffnet man eine Eingabeaufforderung mit Win+Rcmd und lässt nach dem beenden des WWW-Publishingdienst folgende appcmd Befehle ausführen.
net stop WAS
%windir%\system32\inetsrv\appcmd list apppool "MicrosoftDynamicsAXAif50" /config /xml > %tmp%\myapppool.xml
%windir%\system32\inetsrv\appcmd list site "AifWebServices" /config /xml > %tmp%\aifwebservices.xml
notepad %tmp%\aifwebservices.xml
%windir%\system32\inetsrv\appcmd add apppool /in < %tmp%\myapppool.xml
%windir%\system32\inetsrv\appcmd add site /in < %tmp%\aifwebservices.xml
net start W3SVC
Zeile 4 exportiert den Anwendungspool MicrosoftDynamicsAXAif50 in Datei myapppool.xml im Temp Ordner des aktuellen Benutzers.
Zeile 6 exportiert die Site AifWebServices in aifwebservices.xml.
Zeile 8 öffnet aifwebservices.xml in den Editor um Site Name und Site Id zu ändern. Zeile 10 und 12 importiert die angepassten XML Dateien.
Nach dem Start von W3SVC und aktualisieren des IIS-Managers erscheint die Site und der AppPool im Bereich Features, der Anwendungspool der neuen Site kann im Fenster Aktionen bei Grundeinstellungen über den Button Auswählen zugewiesen werden. Auch der Physikalische Pfad des Virtuellen Verzeichnis kann jetzt ggf. angepasst werden. Bei Bindungen sollte ein noch nicht genutzter Port gewählt werden, oder man verwendet ein hostheader Name.
Folgende Übersicht zeigt die von appcmd unterstützten Optionen
APPCMD (Befehl) (Objekttyp) <ID> </Parameter1:Wert1 ...>
Unterstützte Objekttypen:
SITE Verwaltung von virtuellen Sites
APP Verwaltung von Anwendungen
VDIR Verwaltung von virtuellen Verzeichnissen
APPPOOL Verwaltung von Anwendungspools
CONFIG Verwaltung allgemeiner Konfigurationsabschnitte
WP Verwaltung von Arbeitsprozessen
REQUEST Verwaltung von HTTP-Anforderungen
MODULE Verwaltung von Servermodulen
BACKUP Verwaltung von Serverkonfigurationssicherungen
TRACE Arbeiten mit Ablaufverfolgungsprotokollen für Anforderungsfehler
BINDING Objekt zum Arbeiten mit SSL-Bindungen
(Rufen Sie mit '/?' eine Liste der vom entsprechenden Objekt unterstützten Befehle auf, z. B. 'appcmd.exe site /?'.)
Allgemeine Parameter:
/? Kontextbezogene Hilfemeldung anzeigen
/text<:value> Ausgabe im Textformat generieren (Standard)
/text:* Alle Objekteigenschaften in der Detailansicht anzeigen
/text:<attribute> Wert des angegebenen Attributs
für jedes Objekt anzeigen
/xml Ausgabe im XML-Format generieren
Hiermit generieren Sie eine Ausgabe, die an einen
anderen Befehl im '/in'-Modus übergeben werden kann.
/in oder - XML-Eingabe von der Standardeingabe lesen und verarbeiten
Hiermit verarbeiten Sie von einem anderen Befehl
im '/xml'-Modus generierte Eingaben.
/config<:*> Konfiguration für die angezeigten Objekte anzeigen
/config:* umfasst auch geerbte Konfigurationen.
/metadata Konfigurationsmetadaten bei der Konfigurationsanzeige anzeigen
/commit Konfigurationspfad zum Speichern von Konfigurationsänderungen festlegen
Sie können einen bestimmten Konfigurationspfad wie
'site', 'app', 'parent' oder 'url' angeben, um den entsprechenden Teil
des vom Befehl bearbeiteten Pfads zu speichern, oder 'apphost',
'webroot' oder 'machine' für die entsprechende Konfigurationsebene angeben.
/apphostconfig Alternative Datei 'applicationHost.config' zur Bearbeitung angeben
/debug Debugginginformationen für die Befehlsausführung anzeigen
Verwenden Sie das Ausrufezeichen '!', um Parameter anzugeben, die denselben Namen haben
wie die allgemeinen Parameter, beispielsweise '/!debug:value' zum Festlegen einer Konfigurationseigenschaft mit dem Namen 'debug'.