a special RPC error occurs on server (Solution via script PowerShell)


Si vous êtes responsable de la gestion d'un Exchange Server, vous êtes probablement habitué au processus de renouvellement et de remplacement des certificats, une tâche cruciale pour assurer la sécurité et le fonctionnement fluide de vos services de messagerie


L'attribution d'un nouveau certificat aux services Exchange est une étape clé dans le renforcement de l'infrastructure informatique. Cependant, lors du retrait de l'ancien certificat, un message d'erreur peut survenir dans l'Exchange Admin Center (EAC) ou durant une session PowerShell. Le message consiste en un avertissement indiquant que la suppression des certificats en place pourrait perturber le flux de courrier, en raison de leur association avec les Send Connectors.

Le problème survient si le nouveau certificat possède le même nom d'émetteur et le même nom de sujet que ceux utilisés par l'ancien certificat.



Solution :


Il est essentiel de vérifier que le nouveau certificat est correctement installé et que les services tels que SMTP, IIS, et autres services nécessaires, lui sont correctement attribués.

Par la suite, il convient de récupérer le thumbprint du nouveau certificat et de l'affecter à la variable `$newCertThumbprint`. Cette étape est cruciale pour assurer l'application correcte du certificat.

Il est également important de se procurer le thumbprint de l'ancien certificat, car il sera nécessaire pour sa suppression ultérieure.

Pour terminer, il est nécessaire de récupérer le nom du Send Connector mentionné dans le message d'erreur. Cette information peut être obtenue directement à partir du message d'erreur ou en naviguant dans la section "Mail Flow", puis en sélectionnant "Send Connectors". Cet élément est essentiel pour identifier précisément le connecteur concerné et faciliter les étapes suivantes du processus.

Afin récupérer le thumbprint d'un certificat via l'Exchange Control Panel (ECP), il faut se diriger vers l'onglet "Servers", puis "Certificates". Ensuite, effectuer un double-clic sur le certificat concerné, qu'il s'agisse du nouveau ou de l'ancien, selon le thumbprint que l'on souhaite obtenir (les deux, dans notre cas).






Script Powershell pour résoudre le probleme.



# Import the Exchange Module
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn -ErrorAction SilentlyContinue

# Set the Execution Policy
Set-ExecutionPolicy Unrestricted -Scope Process -Force

# Exchange Server Details
$serverName = hostname
$sendConnectorName = ""
$oldCertThumbprint = ""

# New Certificate Thumbprint
$newCertThumbprint = ""

$TLSCert = Get-ExchangeCertificate -Thumbprint $newCertThumbprint

$TLSCertName = "<I>$($TLSCert.Issuer)<S>$($TLSCert.Subject)"

# Assign the New Certificate to the Send Connector
Set-SendConnector -Identity $sendConnectorName -TlsCertificateName $TLSCertName

# Verify that the new certificate is assigned
Get-SendConnector $sendConnectorName | Format-List Name, TlsCertificateName

Remove-ExchangeCertificate -Server $serverName -Thumbprint $oldCertThumbprint

iisreset



Pour importer le module Exchange : Le script débute par l'ajout du snap-in PowerShell de gestion Exchange (`Microsoft.Exchange.Management.PowerShell.SnapIn`). Ce snap-in contient les cmdlets nécessaires pour la gestion du serveur Exchange. Le paramètre `-ErrorAction SilentlyContinue` assure que si le snap-in est déjà chargé ou si une erreur survient lors du chargement, l'erreur ne sera pas affichée et le script continuera son exécution.

Pour définir la politique d'exécution : La commande `Set-ExecutionPolicy Unrestricted -Scope Process -Force` permet au script de s'exécuter sans restrictions pour le processus PowerShell actuel, outrepassant la politique d'exécution par défaut qui pourrait empêcher l'exécution de scripts ou exiger leur signature. Le paramètre `-Force` est utilisé pour contourner l'invite de confirmation qui apparaîtrait normalement.

Détails du serveur Exchange : Le script récupère le nom d'hôte du serveur sur lequel il s'exécute et l'assigne à la variable `$serverName`. Il définit également deux variables, `$sendConnectorName` et `$oldCertThumbprint`, qui contiennent respectivement l'identifiant unique d'un connecteur d'envoi spécifique et l'empreinte digitale (une sorte d'identifiant numérique) de l'ancien certificat actuellement utilisé.

Nouvelle empreinte de certificat : La variable `$newCertThumbprint` est définie avec l'empreinte du nouveau certificat que l'administrateur souhaite utiliser.

Récupérer les détails du nouveau certificat : Le script utilise `Get-ExchangeCertificate` pour récupérer les détails du nouveau certificat en utilisant son empreinte, et stocke ces informations dans la variable `$TLSCert`.

Formater le nom du certificat : Le script formate l'émetteur et le sujet du certificat dans un format de chaîne spécifique et stocke cela dans la variable `$TLSCertName`.

Assigner le nouveau certificat au connecteur d'envoi : La cmdlet `Set-SendConnector` est ensuite utilisée pour assigner le nouveau certificat au connecteur d'envoi en utilisant son identité (`$sendConnectorName`), et le nom formaté du nouveau certificat (`$TLSCertName`).

Vérifier l'assignation du nouveau certificat : Le script utilise `Get-SendConnector` pour récupérer les détails du connecteur d'envoi et dirige la sortie vers `Format-List` pour afficher le nom et `TlsCertificateName` dans un format de liste, ce qui devrait maintenant montrer les détails du certificat nouvellement assigné.

Réinitialiser les services Internet Information Services (IIS) : Enfin, le script appelle `iisreset` pour redémarrer IIS. Cela est nécessaire car IIS doit être redémarré pour que les modifications prennent effet, car il gère les services web du serveur Exchange, y compris le client de messagerie web Outlook Web App (OWA) et Exchange ActiveSync.

Ce script doit être exécuté par un administrateur disposant des autorisations appropriées pour gérer les certificats Exchange et redémarrer les services IIS sur le serveur.

L'instruction  Remove-ExchangeCertificate -Server $serverName -Thumbprint $oldCertThumbprint  peut, des fois, ne pas correctement fonctionner, il faudra alors supprimer le certificat depuis le personal store via le MMC (Microsoft Management Console)

Bonne lecture !

Walid Hocine









Enregistrer un commentaire

Plus récente Plus ancienne