Exchange Server 2016 : Gestion via Exchange Management Shell

Créer des scripts PowerShell

Testez gratuitement nos 1247 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Les scripts PowerShell représentent la dernière brique nécessaire pour automatiser vos tâches de gestion avec les cmdlets.
07:20

Transcription

Les scripts PowerShell sont la dernière brique nécessaire pour automatiser vos tâches de gestion avec les commandes lets. Alors, prenons un exemple simple et pratique. Vous aimeriez connaître la liste des services dont le nom commence par S* qui sont arrêtés. Le début est assez facile. OK. Ça, c'est simple. On se doute bien qu'on va renvoyer ça vers une autre commande lets, mais laquelle ? Eh bien, il y a une commande lets qui s'appelle Where-Object, qui interroge chacun des objets renvoyés par Get-Service S*, et qui va lui demander : " Es-tu arrêté ? " Et vous avez vu qu'il y avait une propriété Status, qui permet de savoir si un Status est arrêté ou démarré. Donc, le principe est simple : on va interroger chacun des services en ouvrant une accolade - que je ferme aussitôt, pour des raisons de symétrie - et dans cette accolade, je vais interroger le Status de chacun des services suivis. Comment manipuler chacun des services ? Je ne connais pas à l'avance le nom des services... bon, comment faire ? Eh bien, Microsoft a introduit une variable un peu particulière, qui s'appelle la variable Dollar. Voilà, elle s'écrit avec $_. $_ représente en fait chacun des objets renvoyés par la commande lets précédente. Donc du coup, ça simplifie énormément la syntaxe puisque je n'ai qu'à interroger le Status de cette variable. Donc, je tape Point, pour indiquer que je récupère le Status - c'est ce qu'on appelle un modificateur - .status Espace -eq pour tester l'égalité - donc le -eq va tester l'égalité sur quoi ? Eh bien, sur le fait que le service est arrêté ; donc Stopped. Voilà. Et évidemment, on va afficher le résultat. Donc on va piper le résultat. Et pour plus de lisibilité, dans une liste. Voilà, ça devrait fonctionner. On va voir ensemble. Je fais Entrée. Et effectivement, j'ai bien tous les services qui sont arrêtés, et dont le nom commence par S. Alors, cet outil est puissant et va nous permettre d'être utilisé notamment dans les scripts ou directement dans les lignes de commande. Qu'est-ce qu'un script ? Eh bien un script, sur PowerShell, c'est simplement une suite de différents commandes lets PowerShell, pour former, finalement, un programme. Il y a une sécurité qui fait que vos scripts ne fonctionneront pas, la plupart du temps, comme ça, simplement. Pourquoi ? Eh bien, pour des raisons de sécurité, il y a une stratégie, une policy, en anglais, qui évite que vos scripts s'exécutent tout seul, sans que vous le sachiez, finalement, qu'ils soient autorisés à le faire. Et pour connaître cette stratégie, vous tapez Get-ExecutionPolicy, donc c'est une autre commande lets, évidemment. Vous faites Entrée. Et vous voyez qu'ici, je suis dans un environnement où je suis en RemoteSigned. Ça veut dire que les scripts locaux peuvent être exécutés. En revanche, si j'en télécharge un d'internet, celui-ci doit être signé par un éditeur approuvé avant de pouvoir être exécuté. Il y a d'autres stratégies ; vous avez aussi - je vais l'écrire - AllSigned, qui signifie que seuls les scripts signés par un éditeur approuvé peuvent être exécutés, y compris pour les scripts locaux et les scripts téléchargés d'internet ; vous avez Restricted - aucun script ne peut s'exécuter, donc vous êtes simplement en mode interactif - et vous avez le mode Unrestricted. Unrestricted, c'est en fait un mode que je veux utiliser, et pour ça, je vais demander de changer la Policy avec la commande lets - attendez, je vais faire un cls pour mieux voir - voilà : Set-ExecutionPolicy et je demande d'appliquer Unrestricted. Donc ça me permet, comme ça, d'être sûr, de pouvoir exécuter et faire les démonstrations sans problème. Là aussi, dans un environnement où je force pour ne pas avoir de message, qui me demande la confirmation, tout simplement. Dans un environnement de production, évidemment, il faut mesurer avec beaucoup de discernement l'intérêt d'utiliser Unrestricted ou pas. Voilà. Et si je fais maintenant un Get-ExecutionPolicy, je suis bien en Unrestricted. Après, les scripts PowerShell sont vraiment très très simples. Ce sont de simples fichiers - voilà, si je reprends, tenez, je vais revenir un tout petit peu en arrière, c'était très bien, un très bon exemple : je vais sélectionner directement, vous voyez, avec la souris, ma commande lets, voilà, je vais ouvrir un éditeur quelconque. Par exemple, je vais lancer NotePad tout simplement, et je vais copier-coller cette commande lets. Sauf que, comme je suis maintenant dans un script, - enfin, vous allez voir, j'ai pas tout à fait fini - je peux utiliser des variables. Par exemple, je vais faire une variable que j'appelle "Statut" Statut égal je vais reprendre ici ma chaîne de caractères, Stopped. Voilà. Et je vais remplacer, évidemment, Stopped, que j'ai en variable maintenant, par le nom de ma variable, qui est $Sstatut, ce qui me donne une plus grande souplesse dans l'exécution de mon script. Je vais l'enregistrer, sous un dossier Temp. Voilà. Donc je vais l'appeler demo.ps1, puisque c'est l'extension. Je l'enregistre. Je retourne sur C: TEMP j'ai bien mon script Windows PowerShell et je vais pouvoir l'exécuter - je vais me positionner dans le bon dossier, évidemment - Voilà, je vais me mettre en dessous pour que vous voyiez bien ce qui se passe. Voilà, donc je vais dans temp. Je lance demo en faisant Tabulation et hop, j'obtiens le même résultat. L'avantage, vraiment, du script eh bien vous allez voir, c'est que je peux donc l'éditer, par exemple avec le Bloc-notes, et je change Stopped en Running, ma variable. C'est évidemment un petit exemple factice, mais ça vous indique ce qui est possible de faire, et après, ça peut vous donner des idées. Là, j'ai évidemment que les services qui étaient Status arrêté. Je relance exactement le même script. Sauf que là, je vais avoir les services qui sont démarrés. Je suis bien en Status Running. C'est un peu la souplesse (évidemment, c'est un tout petit exemple) on peut très bien faire, vraiment, des programmes entiers très simplement en scripts PowerShell, et, j'ai envie de dire, ne vous privez pas de cette possibilité en tant qu'administrateur. Vous allez gagner énormément de temps, et l'investissement vaut le coup. Croyez-moi.

Exchange Server 2016 : Gestion via Exchange Management Shell

Gérez Microsoft Exchange Server à l’aide des applets de commande d’Exchange Management Shell. Utilisez les cmdlets pour automatiser la gestion des services de messagerie Microsoft.

1h53 (28 vidéos)
Aucun commentaire n´est disponible actuellement
 
Spécial abonnés
Date de parution :1 sept. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !