Comment utiliser l’Outil de diagnostic pour tester des actions personnalisées

  • Last update on August 26th, 2025

L’Outil de diagnostic est un atout clé, car il émule la gestion du client. En d’autres termes, il s’agit d’un “outil” qui peut simuler ce qui se passe lorsque vous ouvrez une session de gestion (session Powershell) via le portail CoreView.

Cet article explique comment il permet de tester leurs scripts Powershell/actions personnalisées.

Prérequis

  • Le script de test ne doit pas contenir de fonctions internes fournies par CoreView.
  • Ce guide est adapté aux environnements disposant d’une forêt unique.
  • Ce guide s’applique aux environnements hybrides, qu’ils soient basés sur la version 2016 ou 2019.
  • Le guide fournit des instructions pas à pas en utilisant la dernière version de l’Outil de diagnostic. Il est cependant important de noter que ces étapes restent identiques, même avec une version antérieure de l’outil.

Tutoriel

Suivez ces étapes pour tester les scripts PowerShell avec l’Outil de diagnostic :

Étape 1 : ouvrir un espace d’exécution PowerShell

Commencez par choisir l’option 6 dans le menu. Cela ouvrira un espace d’exécution PowerShell vierge, sans module PowerShell préchargé. Vous pouvez ainsi saisir manuellement les cmdlets que vous souhaitez tester.

Étape 2 : créer un module de script

Créez un fichier de module de script (.psm1) et enregistrez-le dans le répertoire suivant :

c:\temp

Un fichier de module de script peut contenir n’importe quel code PowerShell valide. Incluez au moins deux fonctions qui interagissent avec Active Directory et Exchange local. Voici des exemples de fonctions permettant de se connecter à Active Directory (connect-ad) et à Exchange local (connect-ex). Vous pouvez personnaliser ces fonctions selon vos besoins.

function connect-ad {
  $AdPwd = "ici le mot de passe"
  $AdUsername = "ici le nom d’utilisateur"
  $ADConnectionUri = "ici fqdn serveur"
  $Name = "OnPrem-AD-Session"
  $Pwd = $AdPwd | ConvertTo-SecureString -AsPlainText -Force
  $Credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdUsername, $Pwd
  $Credential = Get-Credential -Credential $Credentials
  $Session = New-PSSession -ComputerName $ADConnectionUri -Credential $Credential -Name $Name -ErrorAction Stop
  Invoke-Command -Session $Session -ScriptBlock { Import-Module ActiveDirectory }
  Import-PSSession -Session $Session -Module ActiveDirectory -AllowClobber
}
function connect-ex {
  $AdPwd = "ici le mot de passe"
  $AdUsername = "ici le nom d’utilisateur"
  $ConnectionUri = "ici l’URI de connexion"
  $Name = "OnPrem-EX-Session"
  $Pwd = $AdPwd | ConvertTo-SecureString -AsPlainText -Force
  $Credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdUsername, $Pwd
  $Credential = Get-Credential -Credential $Credentials
  $pso = New-PSSessionOption -IdleTimeoutMSec 60000
  $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $ConnectionUri -Credential $Credential -Authentication Kerberos -Name $Name -SessionOption $pso -ErrorAction Stop
  #https
  #$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $ConnectionUri -Credential $Credential -Authentication Basic -Name $Name -SessionOption $pso -ErrorAction Stop
  Import-PSSession -Session $Session -AllowClobber -Prefix O365
}

 Étape 3 : encapsuler les instructions dans des fonctions

Pour les instructions que vous souhaitez tester, encapsulez-les dans des fonctions et enregistrez-les dans le fichier de module. Par exemple, si vous avez besoin d’essayer l’action personnalisée suivante :

param($dn, $server)
$user = Get-AdUser -Identity $dn -Server $server
if ($null -ne $user) {
    Write-Host "Bravo"
}

Encapsulez-la dans une fonction de cette manière :

function my-function($dn, $server) {
    $user = Get-AdUser -Identity $dn -Server $server
    if ($null -ne $user) {
        Write-Host "Bravo !!!"
    }
}

Un processus similaire s’applique pour interagir avec Exchange local :

param($dn, $routing)
Enable-o365RemoteMailbox -Identity $dn -DomainController "test.contoso" -RemoteRoutingAddress $routing

Encapsulez-la dans une fonction comme ci-dessous :

function my-function($dn, $routing) {
    Enable-o365RemoteMailbox -Identity $dn -DomainController "test.contoso" -RemoteRoutingAddress $routing
}

Étape 4 : importer le module PowerShell

Une fois le fichier module enregistré, vous devez l’importer à l’aide de la commande suivante dans l’Outil de diagnostic :

Import-Module C:\temp\namemodule.psm1

Étape 5 : exécuter les fonctions

Une fois le fichier module PowerShell importé, vous pouvez maintenant exécuter les fonctions enregistrées dans le fichier. Par exemple :

my-function -dn "cn=user,OU=test,DC=contoso,DC=local" -server "contoso.local"


Étape 6 : modification du module

Si vous devez apporter des modifications au module de script PowerShell, effectuez les ajustements nécessaires puis enregistrez le fichier. Avant d’exécuter à nouveau une fonction, vous devez supprimer le module en cours à l’aide de la commande suivante :

Remove-module namemodule

puis vous pouvez importer à nouveau le module de script PowerShell (voir Étape 4).