Freigeben über


Freigegebene Konfiguration mit IIS 7

Einführung

Das Internet ändert die Art, wie Unternehmen ihr Alltagsgeschäft abwickeln und wie sie auf dem Markt konkurrieren. Durch die Einführung neuer Webtechnologien und den Anstieg der Anzahl von Kunden, die auf Ressourcen zugreifen, die über das Web verfügbar sind, besteht ein dringender Bedarf an verbesserter Skalierbarkeit, Verfügbarkeit, Zuverlässigkeit und Verwaltbarkeit von Anwendungen. Die Anwendungen sollten auf Systemen basieren, die hohe Uptimes, einen verbesserten Anforderungsdurchsatz, mehr gleichzeitige Benutzertransaktionen und einen besseren ROI-Wert (z. B. eine bessere Servicequalität) ermöglichen als konkurrierende Systeme.

Webfarmen (Servercluster) sind ein Standard geworden, um hochskalierbare, verfügbare und verwaltbare Anwendungen durch die Verteilung der Last bereitzustellen. Genauer gesagt sind diese Anwendungsattribute die Hauptgründe für Webfarmen und Lastenausgleiche. Mithilfe einer Webfarm kann eine Organisation eine skalierbare Option bereitstellen, um die Kapazität der Benutzerbasis zu erhöhen, die gleichzeitig auf die Anwendung und die zugehörigen Ressourcen zugreift.

Der Servercluster bietet eine verbesserte Verfügbarkeit, indem mehrere Server die Last verteilen. Der Cluster kann auch zu jedem beliebigen Zeitpunkt besser auf eine erhöhte Anzahl von Kunden skaliert werden. Schließlich bietet der Cluster durch die problemlose Bereitstellung und Verwaltung der Webfarmarchitektur und ohne die Belastung der betrieblichen Ressourcen verbesserte Verwaltungsfunktionen.

Übersicht

Dieser Artikel konzentriert sich auf das Feature für die gemeinsame, zentralisierte globale Konfiguration. Dieses Feature bietet Unterstützung für homogene Webfarmen, bei denen Server dieselbe Konfiguration für eine Servergruppe verwenden. Mit einer UNC-Freigabe werden alle Änderungen an einer zentralen Masterkonfigurationsdatei ohne zusätzliche Tools oder programmgesteuerte Unterstützung auf weitere Server verteilt.

Im ersten Teil dieses Artikels wird beschrieben, wie Sie die Verwaltungsbenutzeroberfläche von IIS 7 und höheren Versionen verwenden, um die gemeinsame Konfiguration zu aktivieren und zu nutzen. Im zweiten Teil wird erklärt, wie Sie die gemeinsame Konfiguration über die Befehlszeile aktivieren und verwenden.

Nicht-Ziele: Was dieser Artikel nicht abdeckt

Mehrere Aspekte tragen zu einer erfolgreichen Webfarmumgebung bei (einschließlich korrekter Unterstützung, Verwaltbarkeit, Barrierefreiheit, Skalierbarkeit usw.).

Die gemeinsame Konfiguration konzentriert sich nur auf den Konfigurationsverwaltungsaspekt einer Webfarm und befasst sich mit der serverübergreifenden Konfiguration. Es gibt Tools und andere Features, die beispielsweise beim Verwalten mehrerer Server, Kopieren von Inhalten, Bereitstellen von Modulen, Synchronisieren von Anwendungsbinärdateien und Einrichten von Drittanbieterkomponenten helfen können. Diese Tools, Features und Aspekte werden in diesem Artikel nicht behandelt.

In diesem Artikel wird nur erläutert, wie die Konfiguration mithilfe einer zentralen Datei serverübergreifend verwaltet wird.

Beachten Sie daher, dass eine gemeinsame Konfiguration einem Server ermöglicht, auf eine Konfigurationsdatei in einer Back-End-UNC-Freigabe zuzugreifen, als wäre es seine lokale Konfiguration. Wenn Sie die Konfiguration mit einem Front-End-Webserver aktualisieren, werden die Aktualisierungen daher für alle anderen Server durchgeführt.

Es ist wichtig, andere Situationen zu berücksichtigen (z. B. das Installieren eines Drittanbietermoduls oder das Hinzufügen von Konfigurationseinstellungen) und Eigenschaften einzubeziehen, die nur ein Server verstehen kann, der auch über die verfügbaren Binärdateien und das Schema verfügt, die erforderlich sind, um eine ordnungsgemäße Funktionalität zu gewährleisten. Andernfalls kann diese Art der Verwendung dazu führen, dass die anderen Server nicht mehr funktionieren.

Um dieses Problem bei homogenen Farmen zu vermeiden, sollten Sie die gemeinsame Konfiguration für den Cluster deaktivieren, die lokale applicationHost-Datei aktualisieren (damit sie die Remotedatei spiegelt), Module und die Konfiguration auf einem einzelnen Server bereitstellen und aktualisieren und dann die gemeinsame Konfiguration für diesen Server erneut aktivieren. Anschließend können Sie die Binärdateien und Module für die restlichen Server bereitstellen und aktualisieren, bevor Sie die gemeinsame Konfiguration wieder aktivieren.

Domänenumgebungen und Nicht-Domänenumgebungen

Einige Administratoren stellen Webservercluster in einer Domänenumgebung bereit, während andere Administratoren diese in einer Arbeitsgruppe (Nicht-Domäne) bereitstellen. In diesem Artikel werden beide Szenarios erläutert und die Unterschiede und Einschränkungen erläutert. Es wird empfohlen, die Internetinformationsdienste (Internet Information Services, IIS) mit den Hilfs- und Sicherheitsfunktionen in einem Cluster einer Domäne einzurichten, die Active Directory mithilfe eines Domänencontrollers bereitstellt.

Voraussetzungen

Sie müssen die folgenden Schritte in der vorgegebenen Reihenfolge ausführen:

  1. Installieren Sie die IIS auf Ihrem Server, der in diesem Artikel als Webserver bezeichnet wird.
  2. Stellen Sie den Zugriff auf einen zweiten Server sicher, der in diesem Artikel als Dateiserver bezeichnet wird. Der Dateiserver enthält die Freigabe für die Konfiguration sowie grundlegende Inhalte, auf die mithilfe der UNC zugegriffen werden kann.
  3. Bei jedem Schritt in diesem Artikel wird davon ausgegangen, dass der vorherige Schritt abgeschlossen wurde. Führen Sie alle Schritte in der vorgegebenen Reihenfolge aus.
  4. Bei einigen Schritten gibt es einen entsprechenden Schritt, der mithilfe der Benutzeroberfläche ausgeführt werden kann. Führen Sie nur einen Schritttyp aus (sofern nicht anders angegeben).

Zentralisierte Konfiguration

Die IIS-Verwaltungsbenutzeroberfläche umfasst die Unterstützung für das Einrichten der Konfigurationsumleitung und das Exportieren der Konfigurationsdateien und erforderlichen Verschlüsselungsschlüssel in einen angegebenen Pfad.

Exportieren von Dateien und Einrichten der Konfigurationsumleitung mithilfe der Benutzeroberfläche

  1. Öffnen Sie den IIS-Manager.
  2. Wählen Sie in der Strukturansicht die Serververbindung aus, für die Sie die Konfigurationsumleitung einrichten möchten.
  3. Doppelklicken Sie auf Gemeinsame Konfiguration.
    Screenshot des I S-Managers mit ausgewähltem Symbol
  4. Klicken Sie im Bereich Aktionen auf Konfiguration exportieren..., um die erforderlichen Konfigurationsdateien vom lokalen Server an einen anderen Speicherort (z. B. eine UNC-Freigabe) zu exportieren.
    Screenshot des Bereichs
  5. Geben Sie im Dialogfeld Konfiguration exportieren den Pfad ein, in den Sie die Dateien exportieren möchten. Geben Sie ein Kennwort ein, um die ebenfalls zu exportierenden Verschlüsselungsschlüssel zu schützen. Klicken Sie auf OK, um die Konfigurationsdateien und kennwortgeschützten Verschlüsselungsschlüssel zu exportieren.
    Screenshot des Dialogfelds
  6. Aktivieren Sie das Kontrollkästchen Gemeinsame Konfiguration aktivieren, um die Konfigurationsumleitung zu aktivieren.
    Screenshot des Dialogfelds
  7. Geben Sie den Pfad an, in dem sich die Konfiguration und Verschlüsselungsschlüssel befinden, und geben Sie die Anmeldeinformationen an, die für den Zugriff auf diesen Pfad verwendet werden sollen. Klicken Sie auf Verbinden unter..., und geben Sie die Anmeldeinformationen ein.
    Screenshot des Dialogfelds
  8. Klicken Sie auf Anwenden, um die Einstellungen zu speichern. Geben Sie im Dialogfeld Gemeinsame Konfiguration das Kennwort ein, das Sie angegeben haben, um die Verschlüsselungsschlüssel zu schützen.
    Screenshot des Dialogfelds
  9. Klicken Sie auf OK, um die Einrichtung der Konfigurationsumleitung abzuschließen.

In den obigen Schritten wird beschrieben, wie Sie die Konfiguration exportieren und die zentralisierte Konfiguration aktivieren. Sie müssen die Konfiguration jedoch nur einmal exportieren. Führen Sie die Schritte 6 bis 9 für jeden weiteren Server aus, der die zentralisierte Konfiguration verwendet.

Hinweise zur Verwendung der Benutzeroberfläche

Beim Einrichten der Konfigurationsumleitung wird erwartet, dass die exportierten Dateien mithilfe der Benutzeroberfläche exportiert wurden. Dies liegt daran, dass die Benutzeroberfläche Elemente wie die kennwortgeschützten Verschlüsselungsschlüssel mithilfe eines eigenen benutzerdefinierten Formats exportiert und importiert.

Wenn Sie beispielsweise die Dateien „administration.config“ und „applicationHost.config“ manuell in eine Freigabe kopiert und dann die Verschlüsselungsschlüssel manuell exportiert haben, können Sie die Benutzeroberfläche nicht zum Einrichten der Konfigurationsumleitung verwenden, um auf diese Dateien zu verweisen. Dies liegt daran, dass die exportierten Verschlüsselungsschlüssel nicht im Format vorliegen, das von der Benutzeroberfläche benötigt wird.

Eingabeaufforderung

Im weiteren Verlauf des Artikels müssen Sie eine Eingabeaufforderung verwenden, um bestimmte Befehle auszuführen. Es wird empfohlen, eine Eingabeaufforderung mit erhöhten Benutzerrechten zu verwenden, da bestimmte Befehle nicht funktionieren, wenn Sie eine normale Eingabeaufforderung ausführen.

Öffnen einer Eingabeaufforderung mit erhöhten Benutzerrechten

  1. Klicken Sie auf Start.
  2. Klicken Sie auf Alle Programme.
  3. Klicken Sie auf Zubehör.
  4. Klicken Sie mit der rechten Maustaste auf Eingabeaufforderung, und wählen Sie Als Administrator ausführen aus.
  5. Befolgen Sie die Eingabeaufforderungen in allen angezeigten Dialogfeldern.

Sichern der aktuellen applicationHost.config-Datei

Wenn Sie neue Features ausprobieren oder mehrere Konfigurationseinstellungen ändern, empfiehlt es sich, die aktuelle applicationHost.config-Datei zu sichern.

Sichern der applicationHost.config-Datei

  1. Öffnen Sie eine Eingabeaufforderung.

  2. Navigieren Sie zum IIS-Verzeichnis, das sich standardmäßig unter %WINDIR%\System32\InetSrv befindet. Die Konfigurationsdateien werden im Verzeichnis „InetSrv\Config“ gespeichert. Verwenden Sie das AppCmd-Tool, um ein Sicherungsobjekt zu erstellen und die Datei „applicationHost.config“ zu sichern, indem Sie den folgenden Befehl ausführen:

    cd /d %windir%\system32\inetsrv
    appcmd add backup centralConfigBackup
    

    Hinweis

    Das AppCmd-Tool befindet sich im InetSrv-Verzeichnis. Sie müssen über dieses Verzeichnis auf das Tool zugreifen, es sei denn, der Pfad des Tools wird den Umgebungsvariablen des Systems hinzugefügt.

  3. Stellen Sie sicher, dass das Sicherungsobjekt vorhanden ist, das die applicationHost.config-Datei und die Legacy-Metabasisdatei für SMTP und andere Nicht-Webservereinstellungen enthält, indem Sie den folgenden Befehl ausführen:

    appcmd list backup
    

Ersetzen der aktuellen Konfigurationsdatei durch die Sicherungsdatei

  1. Öffnen Sie eine Eingabeaufforderung.

  2. Navigieren Sie zum IIS-Verzeichnis, das sich standardmäßig im InetSrv-Verzeichnis befindet. Stellen Sie das AppCmd-Sicherungsdateiobjekt wieder her, indem Sie den folgenden Befehl ausführen:

    cd /d %windir%\system32\inetsrv\
    appcmd restore backup centralConfigBackup
    

Erstellen von Benutzern für den Zugriff auf die UNC-Freigabe für die Konfiguration

In einer Domänenumgebung müssen Administratoren ein Konto in der Domäne bereitstellen oder erstellen, das mit Active Directory verwendet werden soll. Dieses Konto muss mit den richtigen Benutzerrechten für den Zugriff auf die UNC-Freigabe eingerichtet werden.

In einer Nicht-Domänenumgebung müssen Administratoren für beide Server einen lokalen Benutzer mit Benutzerrechten für den Zugriff auf Inhalte erstellen. Der Benutzername und das Kennwort müssen für alle Server identisch sein, damit dieses Setup funktioniert. Die folgenden Schritte helfen bei der Erstellung von Benutzern zum Lesen der Freigabe, in der sich die gemeinsame Konfiguration befindet.

Erstellen von Benutzern, die die Freigabe lesen können, in der sich die gemeinsame Konfiguration befindet (Nicht-Domäne)

  1. Öffnen Sie eine Eingabeaufforderung.

  2. Erstellen Sie auf dem Webserver (Front-End-Server, auf dem IIS installiert sind) einen Benutzer namens „ConfigUser1“ mit dem Kennwort „ConfigPass1“, indem Sie den folgenden Befehl ausführen:

    net user ConfigUser1 ConfigPass1 /add
    
  3. Erstellen Sie auf dem Dateiserver (Back-End-Server, auf dem sich die zentrale Konfiguration befindet) einen Benutzer namens „ConfigUser1“ mit dem Kennwort „ConfigPass1“, indem Sie den folgenden Befehl ausführen:

net user ConfigUser1 ConfigPass1 /add

Erstellen der UNC-Freigaben für zentrale Konfigurationen und Inhalte

Die UNC-Freigabe für die Konfiguration hostet die applicationHost.config-Datei für alle Server, die Konfigurationsdaten von diesem zentralisierten Speicherort abrufen möchten.

Erstellen der UNC-Freigabe

  1. Öffnen Sie auf dem Dateiserver eine Eingabeaufforderung.

  2. Navigieren Sie zum Stammverzeichnis des Laufwerks. Führen Sie den folgenden Befehl aus, um ein Verzeichnis für die Konfiguration zu erstellen und dieses Verzeichnis zu teilen. Stellen Sie sicher, dass Sie Benutzern die Benutzerrechte zum Lesen und Schreiben in das Verzeichnis gewähren:

    md %SystemDrive%\centralconfig
    net share centralconfig$=%SystemDrive%\centralconfig /grant:Users,Change
    

    Hinweis

    Dieser Befehl gewährt der Benutzergruppe automatisch Benutzerrechte für diese Freigabe. Der für das Szenario ohne Domäne erstellte Benutzer erhält automatisch Änderungsrechte, die bei Bedarf weiter eingeschränkt werden können. Für das Domänenszenario muss der Benutzer entweder über Benutzerrechte verfügen, die explizit für den Zugriff auf die Freigabe festgelegt wurden, oder er muss der Benutzergruppe im System hinzugefügt werden.

  3. Nicht-Domänenszenario: Um die Sicherheit der Freigabe zu erhöhen, können Sie „Users,Change“ nach der Option „/grant“ durch die Parameterangabe „ConfigUser1,Change“ ersetzen. Nur der angegebene Benutzer hat Zugriff auf die Freigabe.

  4. Domänenszenario: Um die Sicherheit der Freigabe zu erhöhen, können Sie „Users,Change“ nach der Option „/grant“ durch die Parameterangabe „domain\user,Change“ ersetzen. Nur der angegebene Benutzer hat Remotezugriff auf die Freigabe.

    Hinweis

    Die Benutzerrechte für eine Freigabe sind ein Verbund von Benutzerrechten für das Remotedateisystem und das lokale Dateisystem. Sie müssen die entsprechenden Benutzerrechte für das Verzeichnis für ein Domänenkonto festlegen, um die Konfigurationsfreigabe erfolgreich lesen zu können.

Gewähren von Benutzerrechten für die Konten für die UNC-Freigaben, die die zentrale Konfiguration und Inhalte hosten

Sie müssen sicherstellen, dass das Konto, das für den Zugriff auf die Konfiguration verwendet wird, über die entsprechenden Benutzerrechte verfügt. Dieses Konto wird von IIS verwendet, um auf die UNC-Freigabe auf die gleiche Weise zuzugreifen wie auf Inhalte, wenn ein virtuelles Verzeichnis einer UNC-Freigabe zugeordnet ist. Die Leseberechtigungen des Benutzers für dieses Konto sind nützlich, wenn nur auf die Freigabe zugegriffen wird. Wenn IIS nach diesem Zeitpunkt die Konfigurationsdatei lesen, wird diese jedes Mal wieder auf die Identität zurückgesetzt, über die die Aufrufer verfügen: entweder auf die API, das verwendete Verwaltungstool oder den Benutzer, der zu diesem Zeitpunkt angemeldet ist.

Hinweis

Das ConfigUser1-Konto bzw. das entsprechende Domänenkonto, das zum Lesen der Konfiguration verwendet wird, entspricht nicht dem Konto, das zum Schreiben der Konfiguration verwendet wird. Diese Konten müssen nicht über Schreibberechtigungen für die Freigabe oder Konfigurationsdatei verfügen.

Gewähren von Benutzerrechten für die Konten für die UNC-Freigabe (Domäne)

  1. Wenn das Domänenkonto Teil der lokalen Benutzergruppe ist und den Benutzern beim Erstellen der Freigabe Zugriff gewährt wurde, können Sie die nächsten Schritte für die Domäneneinrichtung überspringen. Wenn das Domänenkonto für den Zugriff auf die lokale Dateifreigabe jedoch nicht Teil lokaler Benutzergruppen ist, müssen Sie den Befehl ausführen, um Benutzerrechte zu gewähren.
  2. Öffnen Sie auf dem Dateiserver eine Eingabeaufforderung.
  3. Führen Sie den folgenden Befehl aus, um dem Domänenkonto Benutzerrechte zum Lesen des Verzeichnisses zu gewähren, in dem die Konfiguration gespeichert wird:
icacls %SystemDrive%\centralconfig\ /grant domain\user:R

Hinzufügen der UNC-Benutzer (Nicht-Domäne und Domäne)

Bei Domänenszenarios und Nicht-Domänenszenarios muss der Benutzername die Konfiguration des Anmeldebatchauftrags enthalten. Dies ist keine Standardeinstellung bei Windows Server® 2008. Sie müssen dieses Element manuell zum Webserver hinzufügen.

  1. Klicken Sie auf Start. Klicken Sie auf Verwaltungstools, und wählen Sie Lokale Sicherheitsrichtlinie aus.
  2. Wählen Sie unter Lokale Richtlinien die Option Zuweisen von Benutzerrechten aus.
  3. Doppelklicken Sie auf Als Batchauftrag anmelden, und fügen Sie den erstellten UNC-Benutzer hinzu.

Umleiten der Konfiguration

Einführung

Nachdem Sie die vorherigen Schritte abgeschlossen haben, ist der Webserver funktionsfähig, und der Front-End-Webserver sollte seine Standardwebsite mithilfe der Localhost-Loopbackadresse bereitstellen.

Sie können die Konfiguration jetzt an einen zentralen Speicherort verschieben. Auf diese Weise können Sie eine Datei als Masterdatei deklarieren und in einer UNC-Freigabe für die Konfiguration mehrerer Server speichern. Wenn Sie diese Datei einmal ändern, werden alle Serverkonfigurationen gleichzeitig bereitgestellt und aktualisiert.

Speichern der Konfiguration in einer UNC-Freigabe

  1. Kopieren Sie die Dateien applicationHost.config und administration.config aus dem %windir%\system32\inetsrv\config-Verzeichnis auf dem Front-End-Webserver, um sie auf dem Back-End-Dateiserver freizugeben. Wenn das aktuell angemeldete Benutzerkonto Schreibzugriff auf die Back-End-Freigabe hat, können Sie die Datei im Verzeichnis ablegen. Wenn dies nicht der Fall ist, müssen Sie das Benutzerkonto beim Back-End authentifizieren, um diesen Schritt abzuschließen.

  2. Greifen Sie auf die vorhandene redirection.config-XML-Datei im Konfigurationsverzeichnis des Front-End-Servers zu:

    • Verwenden Sie den Windows-Explorer, um zu %windir%\system32\inetsrv\config zu navigieren.
    • Öffnen Sie die Datei „redirection.config“. Diese Datei und deren Inhalt werden beim Einrichten des Webservers erstellt. Tools und APIs können auf diese Datei zugreifen, um festzustellen, ob dieses Feature aktiviert ist.
  3. Öffnen Sie die Datei „redirection.config“. Legen Sie die folgende Konfiguration mit dem richtigen Servernamen, Benutzernamen und Kennwort für Ihre Umgebung fest.

    <configuration> 
        <configSections> 
            <section name="configurationRedirection" /> 
        </configSections> 
        <configurationRedirection enabled="true" path="\\machinename\centralconfig$\" userName="ConfigUser1 or domain\user" password="ConfigPass1 or domainPassword" /> 
    </configuration>
    
  4. Speichern Sie die Datei „redirection.config“. Sie können erneut auf die Websites zugreifen, aber die Konfiguration wird jetzt in einer UNC-Freigabe gespeichert.

Testen der Konfiguration

Im Zusammenhang mit der Konfiguration, auf die vom Back-End verwiesen wird, gibt es zwei wichtige Szenarios, für die dieses Feature entworfen wurde. Sie können die Konfiguration auf den Front-End-Webservern auf zwei Arten aktualisieren:

  1. Sie können die Datei „applicationHost.config“ direkt in der Dateifreigabe bearbeiten. Sobald dies geschehen ist, werden Änderungsbenachrichtigungen ausgegeben, und die Webserver übernehmen die Änderungen in der Datei.
  2. Sie können eine zweite applicationHost.config-Datei in der Back-End-Dateifreigabe hinzufügen und die redirection.config-Datei des Webservers so ändern, dass sie auf die neue Version der Datei verweist. Dies ist für Rollbackzwecke oder Stagingbereitstellungen nützlich.

Zusammenfassung

In diesem Artikel wurde das neue Feature für die zentralisierte Konfiguration erläutert. Mit diesem Feature können Administratoren, die über homogene Cluster in einer Webfarmumgebung verfügen, eine Konfiguration nahtlos auf allen Servern einrichten und bereitstellen.

Sobald das Feature eingerichtet wurde, werden die Änderungen sofort vom Webserver übernommen, unabhängig davon, ob eine Änderung in der Datei einer UNC-Freigabe vorgenommen oder ein Server an einen anderen Ort umgeleitet wird. Nur die globalen Änderungen, die sich auf mehrere Websites und Anwendungen auswirken, führen dazu, dass sie neu gestartet werden. Wenn Änderungen jedoch in einem lokalisierten Bereich vorgenommen werden, werden die restlichen Websites und Anwendungen nicht neu gestartet.

Anhang 1: Programmgesteuerter Zugriff auf die Datei „Redirection.config“ zum Lesen der Werte

Dieser Schritt enthält ein Beispiel für den programmgesteuerten Zugriff auf die Datei „redirection.config“ unter Verwendung der neuen AHADMIN-COM-API. Verwenden Sie die AHADMIN-COM-API, um diese API über nativen Code oder Skriptcode und verwalteten Code zu implementieren.

Programmgesteuertes Lesen von Werten

  1. Erstellen Sie eine Textdatei, und speichern Sie sie mit der Erweiterung „.js“. Das folgende Skript enthält ein Beispiel zum Lesen des aktivierten Attributs, Servernamens, Benutzernamens und Kennworts für Ihre Umgebung:

    try
    {
      var config = WScript.CreateObject( "Microsoft.ApplicationHost.AdminManager" );
      var section = config.GetAdminSection( "configurationRedirection", "MACHINE/REDIRECTION" );
    
      WScript.Echo( "Current redirection:" );
      WScript.Echo( "enabled = " + section.Properties.Item( "enabled" ).Value );
      WScript.Echo( "path = " + section.Properties.Item( "path" ).Value );
      WScript.Echo( "user = " + section.Properties.Item( "userName" ).Value );
      WScript.Echo( "pass = " + section.Properties.Item( "password" ).Value );
    }
    catch(e)
    {
      WScript.Echo(e.number);
      WScript.Echo(e.description);
    }
    
  2. Speichern Sie die redirection.js-Datei. Auf Grundlage des Windows Script Host (WSH) können Sie diese Datei jetzt über eine Eingabeaufforderung ausführen.

Anhang 2: Programmgesteuerter Zugriff auf die Datei „redirection.config“ zum Schreiben der Werte

Dieser Schritt enthält ein Beispiel für den programmgesteuerten Zugriff auf die Datei „redirection.config“ unter Verwendung der neuen AHADMIN-COM-API. Verwenden Sie diese API über nativen Code oder Skriptcode und verwalteten Code aus dem COM-Objekt.

Programmgesteuertes Schreiben der Werte

  1. Erstellen Sie eine Textdatei, und speichern Sie sie mit der Erweiterung „.js“. Das folgende Skript enthält ein Beispiel zum Schreiben des aktivierten Attributs, Servernamens, Benutzernamens und Kennworts für Ihre Umgebung:

    try
    {
        var config = WScript.CreateObject( "Microsoft.ApplicationHost.WritableAdminManager" );
      config.CommitPath = "MACHINE/REDIRECTION";
        var section = config.GetAdminSection( "configurationRedirection","MACHINE/REDIRECTION" );
      section.Properties.Item( "enabled" ).Value = true;
      section.Properties.Item( "path" ).Value = "\\\\somemachine\\sharefile://folder/";
      section.Properties.Item( "userName" ).Value = "testuser";
      section.Properties.Item( "password" ).Value = "testuser";
      config.CommitChanges();
    }
    catch(e)
    {
      WScript.Echo(e.number);
      WScript.Echo(e.description);
    }
    
  2. Speichern Sie die redirection.js-Datei.

  3. Auf Grundlage des Windows Script Host (WSH) können Sie diese Datei jetzt über eine Eingabeaufforderung ausführen.

Anhang 3: Umgang mit computerspezifischen verschlüsselten Eigenschaften

IIS umfassen standardmäßig zwei Hauptanbieter zum Schützen von Eigenschaften. Diese Anbieter befinden sich im Konfigurationsabschnitt <configProtectedData> der applicationHost.config-Datei und werden im Element <providers> definiert.

„AesProvider“ ist spezifisch für den Umgang mit der Verschlüsselung und Entschlüsselung für Eigenschaften, die sich im Abschnitt „system.webServer“ befinden.

„IISWASOnlyRsaProvider“ ist spezifisch für den Umgang mit der Verschlüsselung und Entschlüsselung von Eigenschaften, die sich im Abschnitt „system.applicationHost“ befinden.

Diese Schlüssel befinden sich in den iisConfigurationKey- und iisWasKey-Schlüsselcontainern und sind computerspezifisch. Wenn eine Verschlüsselung erforderlich ist, wird in einem Webfarmszenario ein Schlüssel von einem Computer (in der Regel der Computer, der die Datei „applicationHost.config“ erstellt) exportiert und auf die anderen Computer übertragen, sodass sichere Eigenschaften vom Webserver entschlüsselt und verwendet werden können.

Schritte

  1. Öffnen Sie eine Eingabeaufforderung. Navigieren Sie zum Verzeichnis „Framework“, das sich standardmäßig unter %windir%\Microsoft.NET\Framework\v2.0.50727\ befindet.

    Hinweis

    Zur Referenz befinden sich die Computerschlüssel für das System unter %ALLUSERSPROFILE%\Microsoft\Crypto\RSA\MachineKeys\.

  2. Verwenden Sie das Tool „aspnet_regiis“, um den Schlüssel zu exportieren. Der Befehl zum Übertragen des Konfigurationsschlüssels wird im Folgenden angegeben. Der px-Parameter gibt an, dass Sie ein RSA-Schlüsselpaar exportieren möchten. Der Pri-Parameter gibt an, dass Sie auch den privaten und den öffentlichen Schlüssel einschließen möchten.

    Diese Parameteridentifizierung ist erforderlich, um sowohl die Verschlüsselung als auch die Entschlüsselung durchzuführen. Andernfalls können Sie Daten nur mit dem exportierten Schlüssel verschlüsseln. Der Parameter nach -px ist der Name des zu exportierenden Schlüsselcontainers. In diesem Fall handelt es sich um den Schlüsselcontainer "iisConfigurationKey". Der andere von IIS verwendete Schlüsselcontainer ist der Schlüsselcontainer "iisWasKey".

    aspnet_regiis -px "iisConfigurationKey" "D:\iisConfigurationKey.xml" -pri
    
  3. Nachdem der Export erfolgreich abgeschlossen ist, kopieren Sie die XML-Datei auf den anderen Computer im Cluster, um sie dort zu importieren.

  4. Navigieren Sie zum Verzeichnis „Framework“, und verwenden Sie das aspnet_regiis-Tool, um den Schlüssel aus der XML-Datei zu importieren. Der Befehl zum Abschließen der Übertragung für den Schlüssel wird unten angegeben.

    Der Parameter nach -pi ist der Name des zu importierenden Schlüsselcontainers. In diesem Fall handelt es sich um den Schlüsselcontainer "iisConfigurationKey". Der andere von IIS verwendete Schlüsselcontainer ist der Schlüsselcontainer "iisWasKey".

    aspnet_regiis -pi "iisConfigurationKey" "D:\iisConfigurationKey.xml"