Création de scripts PowerShell « classiques » :
Il s’agit de créer des scripts PowerShell « classiques » intégrant des commandes Exchange.
Dû au fait qu’ils contiennent des commandes Exchange, ce type de scripts ne se lance que depuis une console Exchange management Shell (EMS)
Création de scripts PowerShell avec module Exchange :
Il s’agit d’ajouter le module Exchange à PowerShell.
C’est-à-dire que les scripts vont intégrer la connexion à l’importation du module Exchange.
Set-ExecutionPolicy RemoteSigned
Définition des options du « Set-ExecutionPolicy » (source Microsoft):
Restricted
AllSigned
RemoteSigned
Unrestricted
Bypass
Undefined
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://«FQDN_serveur_Exchange/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session
Remove-PSSession $Session
Exemple de script PowerShell en utilisant les commandes précédentes :
Clic droit créer un fichier « .txt » et changer l’extension en « .ps1 » qui est l’extension de PowerShell
Clic droit « modifier », l’outil Windows PowerShell ISE ouvre le fichier
Une fois le fichier ouvert, il ne reste plus qu’a le remplir pour créer le script.
A titre informatif, il est bon de savoir que l’ISE permet d’avoir une complétion automatique lors de l’ajout de commandes
Enregistrer puis cliquer sur l’icône
pour lancer et tester le script.
Attention le contenu du script sera exécuté
Le script va se connecter pour récupérer le module Exchange PowerShell
Puis il va exécuter le contenu du script
Création de boites aux lettres depuis une liste d’entrée :
Exemple :
Dans un premier temps créer le fichier pour la création des boites aux lettres.
Clic droit créer un fichier « .txt » et changer l’extension en « .ps1 » qui est l’extension de PowerShell
Dans un second temps créer un fichier « .csv » pour lister les boites aux lettres qui seront créées.
Ouvrir le fichier
Dans le fichier il est possible de mettre une liste d’utilisateurs n’existant pas. Ils seront créés et leur boite aux lettres aussi.
Il est également possible d’y ajouter des utilisateurs existant dont la boite aux lettres n’est pas encore activée ou inexistante.
Cette liste doit comprendre plusieurs informations qui devront être positionnées dans un ordre précis ainsi que la nomenclature :
Enregistrer le fichier.
Pour les nouveaux utilisateurs, la commande utilisée sera « New-Mailbox ».
Pour les utilisateurs existant, la commande utilisée sera « Enable-Mailbox »
Ouvrir le fichier « .ps1 » précédemment créé et le remplir
Teste du script :
Vérification dans l’Active Directory :
Le compte Laurent a bien été créé
Il possède bien une boite aux lettres
Marche à suivre :
Clic droit puis créer un fichier « .txt » et changer l’extension en « .ps1 » qui est l’extension de PowerShell
Ouvrir le fichier « .ps1 » précédemment créé et le remplir
Marche à suivre :
Dans un premier temps, créer un créer un fichier d’entrées « .csv ».
Il contiendra les informations concernant les membres.
Ouvrir le fichier pour le remplir en suivant ce format :
« Action;Name;Group;Type;OU;Owner;Moderate »
Pour ignorer un élément, il suffit de ne pas mettre d’information. Toutefois il est IMPERATIF de laisser les séparateurs (ici les « ; » ce qui donnera « ;; »)
Enregistrer
Dans un second temps, il faudra créer le fichier du script PowerShell.
Clic droit puis créer un fichier « .txt » et changer l’extension en « .ps1 » qui est l’extension de PowerShell
Ouvrir avec Windows PowerShell ISE le fichier « .ps1 » précédemment créé et le remplir
En pratique :
Dans un premier temps, créer un créer un fichier d’entrées. Il contiendra les informations nécessaires à la personnalisation des boites aux lettres.
Ouvrir le fichier pour le remplir en suivant ce format :
« Action;Name;OU;CASparam;WarningQuota;SendQuota;SendReceiveQuota »
WarningQuota : envoi un message d’alerte quand une certaine taille est atteinte (quota qui doit être le plus bas).
SendQuota : valeur qui bloque l’envoi des mails depuis la boite aux lettres lorsque le quota est atteint (quota qui doit être de valeur moyenne).
SendReceiveQuota : interdit l’envoi et la réception de mail depuis la boite aux lettres (quota qui doit être le plus élevé).
Pour ignorer un élément, il suffit de ne pas mettre d’information. Toutefois il est IMPERATIF de laisser les séparateurs (ici les « ; » ce qui donnera « ;; »)
Créer le fichier du script PowerShell.
Clic droit puis créer un fichier « .txt » et changer l’extension en « .ps1 » qui est l’extension de PowerShell
Ouvrir avec Windows PowerShell ISE le fichier « .ps1 » précédemment créé et le remplir
Attention : lorsqu’on souhaite changer un quota sur une boite aux lettres il fait d’abord changer sa stratégie sinon c’est celle de la base de données qui sera prise en compte
Exemples par la pratique :
Se connecter au serveur Exchange puis se rendre dans le répertoire qui contient les scripts.
Le script qui permet de gérer les accès client est « ConfigureExchangeURLs.ps1 »
Ouvrir le script si on souhaite le modifier :
Pour utiliser le script :
Se rendre dans le répertoire qui contient le script.
Ouvrir EMS et dans un premier temps vérifier les URLs d’accès client avant de les changer
Lancer le script avec la commande suivante
Pour changer les URLs il faut lancer le script avec certaines options et répondre aux différentes questions qui seront posées
Cette section permettra de mettre en place un script PowerShell générant un rapport de santé pour l’environnement Exchange.
Les étapes :
https://gallery.technet.microsoft.com/office/database-Availability-9a23e9a1
Une fois le script récupéré, le position dans C:/Tools/
Le contenu du dossier Get-DAGHeath est le script en lui-même ainsi qu’un fichier xml qui permettra d’avoir les settings.
Remplacer les informations par défaut par celles de l’organisation :
Pour générer le rapport, lancer l’EMS.
Se placer dans le dossier contenant le script et le lancer avec la commande suivante
.\Get-DAGHealth.ps1
Le rapport sera généré sous la forme d’un fichier HTML qui sera par défaut dans le dossier courant.
Il est possible lors du lancement du script de spécifier un chemin de destination pour le fichier HTMP si l’on rajoute -HTMLFile «Chemin» à la fin de la commande
Pour créer un compte de service qui possèdera les droits nécessaires, il faut se connecter à un contrôleur de domaine et lancer l’outil « utilisateurs et ordinateurs Active Directory ».
Dans le domaine de l’organisation, créer une nouvelle OU
La nommer par exemple « « ServiceAccount »
Dans cette nouvelle OU, créer un compte.
Remplir les informations nécessaires
Une fois le compte créé, il va être configuré comme étant membre du groupe Exchange « View-Only Organization Management ».
Pour cela, se rendre l’OU « Microsoft Exchange Security Groups »
Faire un double clic sur « View-Only Organization Management » puis cliquer sur « membre » puis sur « ajouter »
Ajouter le compte de service précédemment créé
Pour configurer la génération automatique de rapport, se connecter au serveur Exchange et lancer le planificateur de tâches
Faire un clic droit sur « bibliothèque du planificateur de tâches » puis cliquer sur « créer un nouveau dossier »
Par exemple le nommer « Exchange »
Cliquer sur le dossier puis à droite, cliquer sur « créer une tâche »
Dans l’onglet « générale », donner un nom à la tâche et lui mettre une description.
Cliquer sur « utilisateur ou groupe » et sélectionner le compte de service précédemment créé
Cocher la case « exécuter même si l’utilisateur n’est pas connecté »
Dans l’onglet déclencheurs, cliquer sur « nouveau » et configurer les informations pour déclencher la tâche
Dans l’onglet Action, cliquer sur « nouveau » et dans « programme/script » sélectionner PowerShell.
Remplir les arguments :
-Command «& C:\Tools\Get-DAGHealth\Get-DAGHealth.ps1 -Detailed -SendEmail»
Dans l’onglet « Conditions » laisser par défaut sauf si on souhaite mettre en place des conditions.
Dans l’onglet « paramètres » modifier le temps d’arrêt de la tâche à 12h.
Cliquer sur OK et valider par le mot de passe du compte de service
La tâche est maintenant prête
Il est possible d’effectuer un test et de lancer la tâche manuellement pour voir si elle fonctionne.
Faire un clic droit sur la tâche et cliquer sur « exécuter »
La boite mail qui a été configurée devrait recevoir le rapport par email.
En pratique
Se connecter sur un contrôleur de domaine pour y créer le script.
Clic droit puis créer un fichier « .txt » et changer l’extension en « .ps1 » qui est l’extension de PowerShell
Créer un fichier d’entrées
Ouvrir le fichier d’entrées pour y mettre les informations nécessaires en suivant ce format :
« Action;Connector;IP »
ADD : ajout des informations
REMOVE : suppression des informations
Ouvrir avec Windows PowerShell ISE le fichier « .ps1 » précédemment créé et le remplir