Utilisation du script RollAlternateserviceAccountCredential.ps1 dans l’environnement de ligne de commande Exchange Management Shell

S’applique à : Exchange Server 2013

Vous pouvez utiliser le script RollAlternateServiceAccountPassword.ps1 dans Exchange Server 2013 pour mettre à jour les informations d’identification d’un autre compte de service (informations d’identification ASA) et distribuer la mise à jour aux serveurs d’accès au client spécifiés.

Remarque

L'environnement de ligne de commande Exchange Management Shell ne charge pas automatiquement les scripts. Vous devez faire précéder tous les scripts de .\ Par exemple, pour exécuter le script RollAlternateServiceAccountPassword.ps1, tapez .\RollAlternateServiceAccountPassword.ps1.

Ce script est uniquement disponible en anglais.

Pour plus d'informations sur l'utilisation et l'écriture de scripts, consultez la rubrique Scripting with the Exchange Management Shell.

Syntaxe

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

Description détaillée

Des autorisations doivent vous être attribuées avant de pouvoir exécuter cette procédure. Pour voir les autorisations qui vous sont nécessaires, consultezEntrée « Sécurité d'accès au client » dans la rubrique des autorisations d'accès au client.

Détails techniques du script d’informations d’identification pour un autre compte de service

Ce script facilite l’installation et la gestion des informations d’identification ASA. Une fois que vous avez créé les informations d'identification ASA et défini les noms principaux de service appropriés, le script vous permettra de distribuer les informations d'identification à tous les serveurs d'accès cibles.

Pour utiliser le script, vous devez identifier les serveurs que vous souhaitez cibler et les informations d'identification que vous souhaitez utiliser comme informations d'identification ASA.

Portée du serveur

Le script peut cibler tous les serveurs d’accès au client dans la forêt, tous les membres d’un groupe de serveurs d’accès au client ou des serveurs spécifiques. Les paramètres disponibles sont ToEntireForest, ToArraryMembers et ToSpecificServers. Si vous ciblez le script vers des serveurs spécifiques ou vers les membres d'un groupe de serveurs spécifique, le paramètre Identity doit être spécifié avec les noms de serveurs ou de groupes de serveur à cibler.

Source d’informations d’identification

Le script peut copier le mot de passe de l’autre compte de service à partir d’un serveur existant. Autre possibilité : spécifier le compte à utiliser et laisser le script générer un nouveau mot de passe pour le compte. Les paramètres disponibles sont GenerateNewPasswordFor et CopyFrom. Le paramètre GenerateNewPasswordFor nécessite que vous spécifiiez une chaîne de compte au format suivant : DOMAIN\Account Name. Si vous utilisez un compte d'ordinateur, vous devez ajouter « $ » à la fin du nom du compte, par exemple : CONTOSO\ClientServerAcct$. Le paramètre CopyFrom adopte le nom d’un serveur d’accès au client existant comme source d’information.

Génération d’un nouveau mot de passe utilisé comme information d’identification

Le mot de passe est créé par le script. Aucune entrée de l'utilisateur n'est requise. Le script tentera de distribuer le mot de passe à tous les ordinateurs cibles, puis de mettre à jour les informations d'identification de compte Active Directory à l'aide du mot de passe nouvellement créé.

Le nouveau mot de passe peut comporter jusqu'à 73 caractères et doit satisfaire des exigences standard de complexité. Si vos règles en matière de mot de passe diffèrent, vous devrez éventuellement définir manuellement le mot de passe, puis le copier sur les serveurs cibles.

Pour éviter les interruptions de service, le script examine chaque serveur d'accès au client et gère le mot de passe existant en plus du mot de passe nouvellement créé. Une fois que le script s'est exécuté, les informations d'identification ASA partagées seront en mesure d'utiliser l'un des deux mots de passe : le mot de passe actuel stocké dans Active Directory ou le nouveau mot de passe qui n'a pas encore été défini dans Active Directory.

Les mots de passe qui ne sont plus valables (arrivés à expiration par exemple) sont supprimés des serveurs de destination. Si le mot de passe dans Active Directory ne peut pas être modifié (peut-être car le mot de passe a expiré), le script tente une réinitialisation du mot de passe. Pour que cela soit possible, le compte exécutant le script doit disposer des autorisations de réinitialiser soit les mots de passe d'accès au compte d'ordinateur Active Directory ou d'utilisateur, selon que votre autre compte de service est un compte d'ordinateur ou un compte d'utilisateur.

Si certains des mots de passe d'accès à l'ensemble des serveurs cibles d'accès au client ne sont pas modifiés, la mise à jour du mot de passe Active Directory risque d'entraîner un échec d'authentification. Si le script est exécuté en mode sans assistance, il ne remplacera pas le mot de passe Active Directory par le nouveau mot de passe, sauf si la mise à jour de tous les serveurs cibles d'accès au client s'est déroulée avec succès. Si le script est exécuté en mode avec assistance, vous recevez un message vous invitant à mettre à jour le mot de passe dans Active Directory.

Création d’une tâche planifiée pour automatiser la gestion des mots de passe

Pour que le script crée une tâche planifiée pour gérer le mot de passe de manière continue, utilisez le paramètre CreateScheduledTask. Ce paramètre doit être complété avec la chaîne correspondant au nom de la tâche à créer.

Remarque

Exécutez le script et vérifiez qu'il fonctionne correctement en mode avec assistance avant de créer la tâche planifiée sans assistance.

Le script crée un fichier .cmd dans le dossier contenant le script. Il crée ensuite une tâche permettant d'exécuter ce fichier .cmd toutes les trois semaines. Vous pouvez utiliser le Planificateur de tâches Windows pour modifier la tâche planifiée, par exemple, pour définir qu'il s'exécute plus ou moins souvent. Par défaut, la tâche est exécutée comme utilisateur actuellement connecté. En outre, le script est exécuté uniquement lorsque l'utilisateur est connecté à l'ordinateur. Nous vous recommandons de modifier la tâche planifiée afin qu'elle s'exécute indépendamment du statut de connexion de l'utilisateur. Vous pouvez également choisir de l'exécuter sous un compte différent, si ce compte a des autorisations Active Directory pour réinitialiser les mots de passe, ainsi que le rôle administrateur Exchange Entreprise. Lors de la création d'une tâche planifiée, le script s'exécute automatiquement en mode sans assistance.

Tâches hors de portée du script

Le script ne gère pas les SPN des informations d'identification ASA et ne permet pas de supprimer un autre compte de service à partir d'un serveur. Pour supprimer un autre compte de service à partir d'un serveur, voir la section Désactivation de l'authentification Kerberos dans Configuration de l'authentification Kerberos pour les serveurs d'accès au client avec équilibrage de charge.

Résolution de problèmes liés au script

Nous vous recommandons d'exécuter le script et de vérifier qu'il fonctionne correctement en mode avec assistance avant de créer la tâche planifiée sans assistance. Pour obtenir des informations de résolution des problèmes, consultez la rubrique Dépannage des problèmes liés au script RollAlternateServiceAccountCredential.ps1.

Validation du script

Le résultat du script exécuté de manière interactive avec l’indicateur -verbose doit indiquer les opérations de script qui ont abouti. Pour vous assurer que les serveurs d'accès au client ont été mis à jour, vous pouvez vérifier la date de dernière mise à jour de l'horodatage dans les informations d'identification ASA. Dans l'exemple suivant, la commande génère une liste de serveurs d'accès au client et indique l'heure de la dernière mise à jour de l'autre compte de service.

Get-ClientAccessServer -IncludeAlternateServiceAccountCredentialstatus |Fl Name, AlternateServiceAccountConfiguration

Vous pouvez également consulter le journal des événements sur l'ordinateur où le script s'exécute. Les entrées correspondant au script se trouvent dans le journal des événements de l’application et sont issues de la source MSExchange Management Application. Le tableau suivant répertorie les événements consignés et indique leur signification.

ID d’événement de script et leur explication

Événement Explication
14001 Démarrez
14002 Succès (informations)
14003 Réussi mais avec avertissements.

Le script a détecté certains problèmes, mais il a pu les surmonter, ou l'utilisateur a confirmé qu'ils pouvaient être ignorés. Si le script s'exécute en mode interactif, lisez la sortie générée par ce dernier pour en savoir plus sur l'avertissement.
14004 Échec

Si le script s'exécute comme une tâche planifiée, les résultats correspondants sont consignés dans le dossier Enregistrement du serveur Exchange (dans le sous-dossier RollAlternateServiceAccountPassword).

Vous pouvez utiliser le journal pour vous assurer que la tâche s'est bien exécutée.

Paramètres

Paramètre Obligatoire Description
ToEntireForest Facultatif Le paramètre ToEntireForest cible le script sur tous les serveurs d’accès au client de la forêt.
ToArrayMembers Facultatif Le paramètre ToArrayMembers cible le script pour tous les membres d’un tableau de serveurs d’accès au client spécifique.

Remarque : Si vous utilisez le paramètre ToArrayMembers ou le paramètre ToSpecificServers , vous devez spécifier les noms de serveurs ou les noms de tableau de serveurs à l’aide du paramètre Identity .
ToSpecificServers Facultatif Le paramètre ToSpecificServers cible le script sur des serveurs spécifiques.

Remarque : Si vous utilisez le paramètre ToArrayMembers ou le paramètre ToSpecificServers , vous devez spécifier les noms de serveurs ou les noms de tableau de serveurs à l’aide du paramètre Identity .
Identity Requis Le paramètre Identity spécifie le nom du tableau de serveurs d’accès au client ou les noms des serveurs spécifiques que vous ciblez.
GenerateNewPasswordFor<String> Facultatif Le paramètre GenerateNewPasswordFor spécifie que le script doit générer un nouveau mot de passe pour l’ASA. La valeur de chaîne doit être le compte ASA au format suivant : DOMAINE\Nom de compte. Si vous utilisez un compte d'ordinateur, vous devez ajouter le caractère $ à la fin du nom du compte.
CopyFrom<String> Facultatif Le paramètre CopyFrom spécifie que les informations d’identification sont copiées à partir d’un autre serveur d’accès au client. La valeur de chaîne spécifiée est le nom du serveur d'accès au client.
Mode Facultatif Le commutateur Mode spécifie si le script s’exécute en mode assisté ou sans assistance. Dans le mode sans assistance, l'intervention de l'utilisateur n'est pas requise et des options plus « strictes » sont sélectionnées, si nécessaire.
CreateScheduledTask<String> Facultatif Le paramètre CreateScheduledTask indique au script de créer une tâche planifiée pour effectuer la mise à jour des informations d’identification ASA. La valeur de la chaîne correspond au nom de la tâche planifiée qui sera créée.

Remarque : ce script crée un fichier .cmd dans le dossier où se trouve le script. La tâche planifiée exécutera le fichier .cmd toutes les trois semaines. Pour modifier la fréquence d'exécution de la tâche, vous pouvez modifier directement cette dernière dans le Planificateur de tâches Windows.
WhatIf Facultatif Le commutateur WhatIf indique à la commande de simuler les actions qu’elle effectuerait sur l’objet. En utilisant le commutateur WhatIf , vous pouvez voir les modifications qui se produiraient sans avoir à appliquer l’une de ces modifications. Vous n’avez pas besoin de spécifier une valeur avec le commutateur WhatIf .
Vérifier Facultatif Le commutateur Confirm suspend la commande et vous demande de confirmer les actions que la commande va exécuter avant de continuer le traitement. Il n’est pas nécessaire de spécifier une valeur pour le commutateur Confirm.
Verbose Facultatif Le paramètre Verbose indique au script d’effectuer une journalisation détaillée, afin que des informations supplémentaires sur les actions du script soient écrites dans le fichier journal.
Debug Facultatif Le paramètre Debug indique au script de s’exécuter en mode débogage. Ce paramètre doit être utilisé afin de déterminer pourquoi le script échoue.

Exemples

Exemple 1

Dans cet exemple, le script fait passer les informations d’identification lors de la première installation à tous les serveurs d’accès au client présents dans la forêt.

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

Exemple 2

Cet exemple permet de générer un nouveau mot de passe pour les informations d’identification ASA d’un compte utilisateur et de le distribuer à tous les membres des groupes de serveurs d’accès au client dont le nom contient *mailbox*.

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

Exemple 3

Cet exemple montre comment planifier mensuellement une tâche de réinitialisation de mot de passe automatisée appelée « Exchange-RollAsa ». Elle permet de mettre à jour les informations d'identification ASA pour tous les serveurs d'accès au client de la forêt avec un nouveau mot de passe généré par script. La tâche planifiée est créée, mais le script n'est pas exécuté. Lors de l’exécution de la tâche planifiée, le script s’exécute en mode sans assistance.

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

Exemple 4

Cet exemple montre comment mettre à jour les informations d'identification ASA pour tous les serveurs d'accès au client du groupe de serveurs correspondant nommé CAS01. Les informations d'identification sont obtenues à partir du compte d'ordinateur Active Directory ServiceAc1 dans le domaine Contoso.

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

Exemple 5

Cet exemple vous indique comment utiliser le script pour distribuer les informations d'identification ASA à un nouvel ordinateur ou un ordinateur remis en service, soit parce que vous augmentez la taille du groupe de serveurs, soit parce que vous réintroduisez des membres du groupe après une opération de maintenance.

Vous devez mettre à jour les informations d'identification ASA avant que le serveur d'accès au client reçoive le trafic. Pour ce faire, copiez les informations ASA partagées depuis n’importe quel serveur d’accès au client dont la configuration est correcte. Par exemple, si le serveur A a actuellement des informations d’identification ASA de travail et que vous venez d’ajouter le serveur B au tableau, vous pouvez utiliser le script pour copier les informations d’identification (y compris le mot de passe) du serveur A vers le serveur B. Cela est utile si le serveur B était en panne ou n’était pas encore membre du tableau lors du dernier déploiement du mot de passe.

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