Verwenden des Skripts "RollAlternateserviceAccountCredential.ps1" in der Shell

Gilt für: Exchange Server 2013

Sie können das RollAlternateServiceAccountPassword.ps1-Skript in Exchange Server 2013 verwenden, um anmeldeinformationen eines alternativen Dienstkontos (ASA-Anmeldeinformationen) zu aktualisieren und das Update an angegebene Clientzugriffsserver zu verteilen.

Hinweis

Die Exchange-Verwaltungsshell lädt Skripts nicht automatisch. Sie müssen allen Skripts vorangehen . Geben Sie beispielsweise ein .\RollAlternateServiceAccountPassword.ps1, um das RollAlternateServiceAccountPassword.ps1 Skript auszuführen.

Dieses Skript wird ausschließlich auf Englisch bereitgestellt.

Weitere Informationen zum Verwenden und Schreiben von Skripts finden Sie unter Scripting with the Exchange Management Shell.

Syntax

RollAlternateServiceAccountPassword.ps1 -Scope <Object> -Identity <Object> -Source <Object> -

Detaillierte Beschreibung

Bevor Sie dieses Verfahren bzw. diese Verfahren ausführen können, müssen Ihnen die entsprechenden Berechtigungen zugewiesen werden. Informationen zu den von Ihnen benötigten Berechtigungen finden Sie unter "Clientzugriffssicherheit" im Thema "Clientzugriffsberechtigungen".

Technische Details des Skripts für Anmeldeinformationen für das alternative Dienstkonto

Dieses Skript vereinfacht die Einrichtung und Wartung der ASA-Anmeldeinformationen. Wenn Sie die ASA-Anmeldeinformationen erstellt und die entsprechenden Dienstprinzipalnamen festgelegt haben, können Sie die Anmeldeinformationen mithilfe des Skripts an die Ziel-Clientzugriffsserver verteilen.

Wenn Sie das Skript verwenden möchten, müssen Sie die Zielserver identifizieren und angeben, welche Anmeldeinformationen Sie als ASA-Anmeldeinformationen verwenden möchten.

Serverbereich

Sie können festlegen, dass das Skript auf alle Clientzugriffsserver in der Gesamtstruktur, alle Mitglieder eines bestimmten Clientzugriffsserverarrays oder bestimmte Server ausgerichtet ist. Die verfügbaren Parameter sind ToEntireForest, ToArraryMembers und ToSpecificServers. Wenn Sie das Skript auf bestimmte Server oder Elemente eines bestimmten Serverarrays ausrichten, muss der Identity-Parameter mit den Server- oder Serverarraynamen angegeben werden, die Sie als Ziel verwenden möchten.

Quelle der Anmeldeinformationen

Das Skript kann das Kennwort des alternativen Dienstkontos von einem vorhandenen Server kopieren. Alternativ können Sie das Konto angeben, das Sie verwenden möchten, und das Skript ein neues Kennwort für das Konto generieren lassen. Die verfügbaren Parameter sind GenerateNewPasswordFor und CopyFrom. Der GenerateNewPasswordFor-Parameter erfordert, dass Sie eine Kontozeichenfolge im folgenden Format angeben: DOMÄNE\Kontoname. Wenn Sie ein Computerkonto verwenden, müssen Sie "$" am Ende des Kontonamens anfügen, z. B. CONTOSO\ClientServerAcct$. Der CopyFrom-Parameter verwendet den Namen eines vorhandenen Clientzugriffsservers als Anmeldeinformationsquelle.

Generieren ein neues Kennworts für Anmeldeinformationen

Das Kennwort wird vom Skript erstellt. Es ist keine Benutzereingabe erforderlich. Das Skript versucht, das Kennwort an alle Zielcomputer zu verteilen und dann die Active Directory-Anmeldeinformationen anhand des neu generierten Kennworts zu aktualisieren.

Das neu generierte Kennwort ist 73 Zeichen lang und erfüllt die Standardanforderungen für sichere Kennwörter. Wenn Ihre Kennwortanforderungen abweichen, müssen Sie das Kennwort u. U. manuell festlegen und dann auf die Zielserver kopieren.

Das Skript untersucht alle Clientzugriffsserver, um Dienstunterbrechungen zu verhindern, und bewahrt zusätzlich zum neuen Kennwort das aktuelle Kennwort auf. Nach dem Ausführen des Skripts können die freigegebenen ASA-Anmeldeinformationen eines von zwei Kennwörtern verwenden: das aktuelle Kennwort, das in Active Directory gespeichert ist, oder das neue Kennwort, das bisher noch nicht in Active Directory festgelegt wurde.

Alle Kennwörter, die nicht mehr gültig sind, z. B. abgelaufene Kennwörter, werden von den Zielservern entfernt. Wenn das Kennwort in Active Directory nicht geändert werden kann, möglicherweise weil das Kennwort abgelaufen ist, versucht das Skript eine Kennwortzurücksetzung. Dies erfordert, dass das Konto, das das Skript ausführt, über Berechtigungen zum Zurücksetzen von Kennwörtern für Active Directory-Computerkonten oder Benutzerkonten verfügt, je nachdem, ob es sich bei Ihrem alternativen Dienstkonto um ein Computerkonto oder ein Benutzerkonto handelt.

Wenn die Kennwörter nicht für alle Ziel-Clientzugriffsserver erfolgreich geändert werden, kann das Aktualisieren des Active Directory-Kennworts einen Authentifizierungsfehler verursachen. Wenn das Skript im unbeaufsichtigten Modus ausgeführt wird, wird das Active Directory-Kennwort nicht in das neue Kennwort geändert, solange die Ziel-Clientzugriffsserver nicht erfolgreich aktualisiert wurden. Wenn das Skript im unbeaufsichtigten Modus ausgeführt wird, werden Sie gefragt, ob Sie das Kennwort in Active Directory aktualisieren wollen.

Erstellen eines geplanten Tasks zum Automatisieren der Kennwortwartung

Wenn das Skript einen geplanten Task für die fortlaufende Wartung des Kennworts erstellen soll, verwenden Sie den Parameter CreateScheduledTask. Dieser Parameter erfordert eine Zeichenfolge für den Namen des zu erstellenden Tasks.

Hinweis

Führen Sie das Skript aus, und stellen Sie sicher, dass es im beaufsichtigten Modus richtig ausgeführt wird, bevor Sie den unbeaufsichtigten geplanten Task erstellen.

Das Skript erstellt eine CMD-Datei in dem Ordner, in dem sich das Skript befindet. Dann erstellt es einen Task, um die CMD-Datei alle drei Wochen auszuführen. Sie können windows Task Scheduler verwenden, um die geplante Aufgabe zu ändern, z. B. um festzulegen, dass sie mehr oder weniger häufig ausgeführt wird. In der Standardeinstellung wird der Task als aktuell angemeldeter Benutzer ausgeführt. Darüber hinaus wird das Skript nur ausgeführt, wenn der Benutzer am Computer angemeldet ist. Sie sollten den geplanten Task so ändern, dass er unabhängig davon ausgeführt wird, ob der Benutzer angemeldet ist. Sie können es auch unter einem anderen Konto ausführen, wenn dieses Konto über Active Directory-Berechtigungen zum Zurücksetzen von Kennwörtern sowie die Rolle Exchange-Unternehmensadministrator verfügt. Wenn Sie einen geplanten Task erstellen, wird das Skript automatisch im unbeaufsichtigten Modus ausgeführt.

Tasks außerhalb des Skriptbereichs

Mit dem Skript können keine Sicherheitsprinzipalnamen der ASA-Anmeldeinformationen verwaltet und auch kein alternatives Dienstkonto von einem Server entfernt werden. Informationen zum Entfernen eines alternativen Dienstkontos von einem Server finden Sie im Abschnitt Deaktivieren der Kerberos-Authentifizierung unter Konfigurieren der Kerberos-Authentifizierung für Clientzugriffsserver mit Lastenausgleich.

Problembehandlung für das Skript

Sie sollten das Skript ausführen und sicherstellen, dass es im beaufsichtigten Modus richtig ausgeführt wird, bevor Sie den unbeaufsichtigten geplanten Task erstellen. Informationen zur Problembehandlung finden Sie unter Problembehandlung für das Skript "RollAlternateServiceAccountCredential.ps1".

Überprüfen des Skripts

Wenn Sie das Skript interaktiv mit dem Flag "-verbose" ausführen, sollte die Ausgabe angeben, welche Skriptoperationen erfolgreich waren. Zur Bestätigung, dass die Clientzugriffsserver aktualisiert wurden, können Sie den letzten geänderten Zeitstempel in den ASA-Anmeldeinformationen überprüfen. Im folgenden Beispiel wird eine Liste mit Clientzugriffsservern und dem letzten Zeitpunkt generiert, an dem das alternative Dienstkonto aktualisiert wurde.

Get-ClientAccessServer -IncludeAlternateServiceAccountCredentialstatus |Fl Name, AlternateServiceAccountConfiguration

Sie können auch das Ereignisprotokoll auf dem Computer prüfen, auf dem das Skript ausgeführt wird. Die Ereignisprotokolleinträge für das Skript befinden sich im Anwendungsereignisprotokoll und stammen aus der Quell-MSExchange Management Application. In der folgenden Tabelle sind die protokollierten Ereignisse und ihre Bedeutung aufgelistet.

Skriptereignis-IDs und ihre Erläuterung

Ereignis Erklärung
14001 Start
14002 Erfolg (Information)
14003 Erfolgreich, aber mit Warnungen.

Das Skript ist auf einige Fehler gestoßen, konnte diese jedoch zunächst außer Acht lassen oder erhielt durch eine Benutzereingabe die Bestätigung, dass sie nicht von Bedeutung sind. Wird das Skript im interaktiven Modus ausgeführt, finden Sie in der Skriptausgabe weitere Details zu den Warnungen.
14004 Fehler

Wenn das Skript als geplanter Task ausgeführt wird, werden seine Ergebnisse im Ordner Protokollierung des Exchange-Servers in dem Unterordner RollAlternateServiceAccountPassword protokolliert.

Sie können anhand des Protokolls erkennen, dass der Task erfolgreich ausgeführt wurde.

Parameter

Parameter Erforderlich Beschreibung
ToEntireForest Optional Der ToEntireForest-Parameter zielt auf das Skript auf alle Clientzugriffsserver in der Gesamtstruktur ab.
ToArrayMembers Optional Der ToArrayMembers-Parameter zielt auf das Skript auf alle Member eines bestimmten Clientzugriffsserverarrays ab.

Hinweis: Wenn Sie den ToArrayMembers-Parameter oder den ToSpecificServers-Parameter verwenden, müssen Sie die Servernamen oder die Serverarraynamen mithilfe des Parameters Identity angeben.
ToSpecificServers Optional Der ToSpecificServers-Parameter zielt auf das Skript auf bestimmte Server ab.

Hinweis: Wenn Sie den ToArrayMembers-Parameter oder den ToSpecificServers-Parameter verwenden, müssen Sie die Servernamen oder die Serverarraynamen mithilfe des Parameters Identity angeben.
Identity Erforderlich Der Parameter Identity gibt den Namen des Clientzugriffsserverarrays oder die Namen der spezifischen Server an, auf die Sie abzielen.
GenerateNewPasswordFor<String> Optional Der Parameter GenerateNewPasswordFor gibt an, dass das Skript ein neues Kennwort für die ASA generieren soll. Der Zeichenfolgenwert muss dem alternativen Dienstkonto im folgenden Format entsprechen: DOMÄNE\Kontoname. Wenn Sie ein Computerkonto verwenden, müssen Sie am Ende des Kontonamens das Zeichen „$" anhängen.
CopyFrom<String> Optional Der Parameter CopyFrom gibt an, dass die Anmeldeinformationen von einem anderen Clientzugriffsserver kopiert werden. Der angegebene Zeichenfolgenwert ist der Name des Clientzugriffsservers.
Mode Optional Die Option Modus gibt an, ob das Skript im beaufsichtigten oder unbeaufsichtigten Modus ausgeführt wird. Der unbeaufsichtigte Modus fordert keine Benutzereingaben auf und wählt bei Bedarf automatisch konservativere Optionen aus.
CreateScheduledTask<String> Optional Der Parameter CreateScheduledTask weist das Skript an, eine geplante Aufgabe zu erstellen, um die Aktualisierung der ASA-Anmeldeinformationen durchzuführen. Der Zeichenfolgenwert ist der Name des zu erstellenden geplanten Tasks.

Hinweis: Dieses Skript erstellt eine CMD-Datei in dem Ordner, in dem sich das Skript befindet. Der geplante Task führt die CMD-Datei einmal alle drei Wochen aus. Sie können den Task direkt im Windows-Taskplaner bearbeiten, wenn Sie die Häufigkeit ändern wollen, mit der der Task ausgeführt wird.
Whatif Optional Der WhatIf-Schalter weist den Befehl an, die Aktionen zu simulieren, die er für das Objekt ausführen würde. Mithilfe des WhatIf-Schalters können Sie anzeigen, welche Änderungen auftreten würden, ohne diese Änderungen anwenden zu müssen. Sie müssen keinen Wert mit der Option WhatIf angeben.
Bestätigen Optional Die Option Confirm bewirkt eine Unterbrechung der Befehlsausführung und zwingt Sie, die Aktion des Befehls zu bestätigen, bevor die Verarbeitung fortgesetzt wird. Für die Option Confirm muss kein Wert angegeben werden.
Verbose Optional Der Verbose-Parameter weist das Skript an, eine ausführliche Protokollierung durchzuführen, sodass zusätzliche Informationen zu den Aktionen des Skripts in die Protokolldatei geschrieben werden.
Debug Optional Der Debug-Parameter weist das Skript an, im Debugmodus auszuführen. Dieser Parameter sollte verwendet werden, um zu ermitteln, warum das Skript einen Fehler verursacht.

Beispiele

Beispiel 1

In diesem Beispiel wird das Skript verwendet, um die Anmeldeinformationen für das erste Setup per Push an alle Clientzugriffsserver in der Gesamtstruktur zu verteilen.

.\RollAlternateserviceAccountPassword.ps1 -ToEntireForest -GenerateNewPasswordFor "Contoso\ComputerAccount$" -Verbose

Beispiel 2

In diesem Beispiel wird ein neues Kennwort für ASA-Anmeldeinformationen eines Benutzerkontos generiert und das Kennwort an alle Mitglieder des Clientzugriffsserver-Arrays verteilt, bei deren Namen eine Übereinstimmung mit *mailbox* erkannt wird.

.\RollAlternateserviceAccountPassword.ps1 -ToArrayMembers _mailbox_ -GenerateNewPasswordFor "Contoso\UserAccount" -Verbose

Beispiel 3

In diesem Beispiel wird ein einmal pro Monat geplanter automatischer Task namens "Exchange-RollAsa" geplant. Er aktualisiert die ASA-Anmeldeinformationen für alle Clientzugriffsserver in der Gesamtstruktur anhand eines neuen, skriptgenerierten Kennworts. Der geplante Task wird erstellt, aber das Skript wird nicht ausgeführt. Wenn der geplante Task ausgeführt wird, wird das Skript im unbeaufsichtigten Modus ausgeführt.

.\RollAlternateServiceAccountPassword.ps1 -CreateScheduledTask "Exchange-RollAsa" -ToEntireForest -GenerateNewPasswordFor 'contoso\computerAccount$'

Beispiel 4

In diesem Beispiel werden die ASA-Anmeldeinformationen für alle Clientzugriffsserver im Clientzugriffsserver-Array "CAS01" aktualisiert. Die Anmeldeinformationen werden vom Active Directory-Computerkonto "ServiceAc1" in der Domäne "Contoso" abgerufen.

.\RollAlternateserviceAccountPassword.ps1 -ToArrayMembers "CAS01" -GenerateNewPasswordFor "CONTOSO\ServiceAc1$"

Beispiel 5

In diesem Beispiel wird gezeigt, wie Sie das Skript verwenden können, um ASA-Anmeldeinformationen an einen neuen Computer zu verteilen oder an einen Computer, der wieder in Dienst genommen wird, wenn Sie beispielsweise Ihr Serverarray vergrößert haben oder Arraymitglieder nach der Wartung wieder zum Array hinzufügen.

Sie müssen die ASA-Anmeldeinformationen aktualisieren, bevor der Clientzugriffsserver Datenverkehr empfängt. Kopieren Sie die freigegebenen ASA-Anmeldeinformationen von einem beliebigen Clientzugriffsserver, der bereits ordnungsgemäß konfiguriert ist. Wenn Server A beispielsweise derzeit über funktionierende ASA-Anmeldeinformationen verfügt und Sie gerade Server B zum Array hinzugefügt haben, können Sie das Skript verwenden, um die Anmeldeinformationen (einschließlich des Kennworts) von Server A auf Server B zu kopieren. Dies ist nützlich, wenn Server B ausgefallen ist oder noch kein Mitglied des Arrays war, als das Kennwort beim letzten Mal gerollt wurde.

.\RollAlternateServiceAccountPassword.ps1 -CopyFrom ServerA -ToSpecificServers ServerB -Verbose