Verwenden des Skripts "RollAlternateserviceAccountCredential.ps1" in der Shell

 

Gilt für:Exchange Server 2013

Letztes Änderungsdatum des Themas:2015-03-09

Sie können das Skript „RollAlternateserviceAccountCredential.ps1“ in Exchange Server 2013 verwenden, um die Anmeldeinformationen für das alternative Dienstkonto (ASA-Anmeldeinformationen) zu aktualisieren und das Update an bestimmte Clientzugriffsserver zu verteilen.

HinweisHinweis:
Skripts werden in der Exchange-Verwaltungshell nicht automatisch geladen. Sie müssen allen Skripts die Zeichen „.\“ voranstellen. Geben Sie z. B. .\RollAlternateServiceAccountPassword.ps1 ein, um das Skript „RollAlternateserviceAccountCredential.ps1“ auszuführen.
HinweisHinweis:
Dieses Skript wird ausschließlich auf Englisch bereitgestellt.

Weitere Informationen zum Verwenden und Schreiben von Skripts finden Sie unter Skripterstellung mit der Exchange-Verwaltungsshell.


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

Bevor Sie 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".

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.

Sie können mithilfe des Skripts alle Clientzugriffsserver in der Gesamtstruktur, alle Mitglieder eines bestimmten Clientzugriffsserver-Arrays oder bestimmte Server als Ziel vorgeben. Die verfügbaren Parameter sind ToEntireForest, ToArraryMembers und ToSpecificServers. Wenn Sie im Skript bestimmte Server oder Mitglieder eines bestimmten Serverarrays als Ziel vorgeben, muss der Parameter Identity mit den Zielservern bzw. den entsprechenden Serverarraynamen angegeben werden.

Das Skript kann das Kennwort des alternativen Dienstkontos von einem vorhandenen Server kopieren. Sie können aber auch das zu verwendende Konto angeben und das Skript ein neues Kennwort für das Konto generieren lassen. Die verfügbaren Parameter sind GenerateNewPasswordFor und CopyFrom. Der Parameter GenerateNewPasswordFor erfordert die Angabe einer Kontozeichenfolge im folgenden Format: DOMÄNE\Kontoname. Wenn Sie ein Computerkonto verwenden, müssen Sie am Ende des Kontonamens das Zeichen „$“ anhängen. Beispiel: CONTOSO\ClientServerAcct$. Der Parameter CopyFrom verwendet den Namen eines vorhandenen Clientzugriffsservers als Quelle der 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, weil es möglicherweise abgelaufen ist, versucht das Skript, das Kennwort zurückzusetzen. Dafür muss das Konto, unter dem das Skript ausgeführt wird, Berechtigungen zum Zurücksetzen von Active Directory-Computerkontokennwörtern oder -Benutzerkontokennwörtern besitzen, je nachdem, ob es sich bei dem 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.

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.

HinweisHinweis:
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 den geplanten Task mithilfe des Windows-Taskplaners ändern, z. B. damit dieser häufiger oder seltener 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 den Task wahlweise auch unter einem anderen Konto ausführen, sofern das Konto Active Directory-Berechtigungen zum Zurücksetzen von Kennwörtern sowie die Exchange-Rolle "Organisationsadministrator" aufweist. Wenn Sie einen geplanten Task erstellen, wird das Skript automatisch im unbeaufsichtigten Modus ausgeführt.

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 Turn Kerberos authentication off unter Konfigurieren der Kerberos-Authentifizierung für Clientzugriffsserver mit Lastenausgleich.

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".

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 Erläuterung

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 Erforderlich Beschreibung

ToEntireForest

Optional

Mit dem Parameter ToEntireForest gibt das Skript alle Clientzugriffsserver in der Gesamtstruktur als Ziel vor.

ToArrayMembers

Optional

Mit dem Parameter ToArrayMembers gibt das Skript alle Mitglieder eines bestimmten Clientzugriffsserver-Arrays als Ziel vor.

HinweisHinweis:
Wenn Sie den Parameter ToArrayMembers oder ToSpecificServers verwenden, müssen Sie die Servernamen oder die Serverarraynamen mithilfe des Parameters Identity angeben.

ToSpecificServers

Optional

Mit dem Parameter ToSpecificServers gibt das Skript bestimmte Zielserver vor.

HinweisHinweis:
Wenn Sie den Parameter ToArrayMembers oder ToSpecificServers verwenden, müssen Sie die Servernamen oder die Serverarraynamen mithilfe des Parameters Identity angeben.

Identity

Erforderlich

Der Parameter Identity gibt den Namen des Clientzugriffsserver-Arrays oder die Namen der bestimmten Server an, die als Ziel vorgegeben werden.

GenerateNewPasswordFor<String>

Optional

Der Parameter GenerateNewPasswordFor gibt an, dass das Skript ein neues Kennwort für das alternative Dienstkonto 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 Mode gibt an, ob das Skript im beaufsichtigten oder unbeaufsichtigten Modus ausgeführt wird. Der unbeaufsichtigte Modus erfordert keine Benutzereingabe und wählt ggf. automatisch eher konservativere Optionen.

CreateScheduledTask<String>

Optional

Der Parameter CreateScheduledTask weist das Skript an, einen geplanten Task für die Durchführung des Updates der ASA-Anmeldeinformationen zu erstellen. Der Zeichenfolgenwert ist der Name des zu erstellenden geplanten Tasks.

HinweisHinweis:
Das 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

Die Option WhatIf weist den Befehl an, die für das Objekt auszuführenden Aktionen zu simulieren. Durch Verwendung der Option WhatIf können Sie eine Vorschau der Änderungen anzeigen, ohne diese Änderungen wirklich übernehmen zu müssen. Für dieWhatIf-Option muss kein Wert angegeben werden.

Confirm

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 Parameter Verbose weist das Skript an, die ausführliche Protokollierung zu verwenden, sodass zusätzliche Informationen zu den Aktionen des Skripts in die Protokolldatei geschrieben werden.

Debug

Optional

Der Parameter Debug weist das Skript an, im Debugmodus zu starten. Dieser Parameter sollte verwendet werden, um zu ermitteln, warum das Skript einen Fehler verursacht.

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

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

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$'

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$" 

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 bereits richtig konfigurierten Clientzugriffsserver. Wenn Server A beispielsweise aktuell über funktionierende ASA-Anmeldeinformationen verfügt und Sie Server B gerade dem Array hinzugefügt haben, können Sie die Anmeldeinformationen (einschließlich Kennwort) mithilfe des Skripts von Server A nach Server B kopieren. Dies ist hilfreich, wenn Server B heruntergefahren oder bei der letzten Änderung des Kennworts noch kein Mitglied des Arrays war.

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