Powershell – Monitorer une liste de serveurs

 

Ce script développé dans le cadre d’un projet, permet de monitorer une liste de serveurs web IIS sous Windows. Il pourrait adresser une ferme de serveurs web,  sharepoint ou une infra Exchange.

Il tourne en boucle (rafraichissement des données toutes les 10 sec par defaut) et effectue les tests suivants sur une liste de serveurs figurant dans un fichier servers.txt.

  • Ping
  • Etat du port http
  • Nombre de connexions IIS actives
  • Utilisation Cpu

Ce script doit être considéré comme une base de travail, charge à vous de l’enrichir et d’y ajouter les éléments manquants.

Quelques rappels de base :

Ping  :

La variable $ping renverra $True si l’ordinateur $host est joignable et $False le cas échéant.

Cpu : 

Cette ligne de code récupère la valeur du Compteur de performance “\Processor(_Total)\% Processor Time” qui renseigne sur le taux d’occupation cpu.

La commande de base exécutée sans froufrou sur mon ordinateur donne :

Connections Actives :

Il s’agit du nombre de connections actives sur le serveur web IIS. On récupère pour cela la valeur du Compteur de performance “\Web Service(_Total)\Current Connections”.

Note : le fichier servers.txt doit être présent dans le même répertoire que le script.

Voici le code source complet :

 

PowerShell – Créer des comptes de test

Ça faisait longtemps que je cherchais et je suis finalement tombé dessus par hasard. Durant nos phases de maquettage nous sommes souvent amené à créer des dizaines voir des centaines d’utilisateurs dans l’annuaire Active Directory. On se retrouve donc avec des utilisateurs user001, user002, … pas très glamour tout ça. Christophe a eu l’idée de créer ces utilisateurs en utilisant un fichier contenant de vrais noms (ceux de 1000 actrices et acteurs) pour donner un peu plus de réalisme à nos plate-formes de test. C’est tout de suite plus fun quand on voit un Al Pacino ou une Monica BELLUCCI dans sa liste d’utilisateurs 🙂

Je vous invite à lui rendre visite sur son excellent blog, vous y trouverez des tas d’autres astuces sympa.

Source : http://my-powershell.fr/active-directory/creer-1000-comptes-de-test.html

PowerShell – Barre de progression

Il y a quelques années, lors d’une migration Exchange, j’ai du réimporté une base de 40 000 contacts dans l’annuaire depuis un fichier CSV. Je peux vous dire que ça prend un certain temps et qu’il peut être particulièrement frustrant de ne pas savoir ou on en est. C’est dans ce genre de situation que l’affichage d’une barre de progression présente tout son intérêt.

La mise en oeuvre en est assez simple comme le prouve le petit exemple qui suit :

La progression de la barre est controlée par le paramètre PercentComplete  qui varie évidemment de 1 à 100. Le paramètre Activity permet de donner un titre à la progression et Status permet de définir un message qui peu varier au fur et à mesure de la progression. Nous avons du mettre un petit temps d’attente de 100ms (Sleep -m 100) pour simuler l’exécution d’un traitement.

 

PowerShell – Generate Mailbox Reports

Ce script de Paul Cunningham (retenez bien ce nom) permet de générer un rapport très détaillé (au format CSV) de la liste des boites aux lettres, avec pour chacune d’elle, la taille (MB), le nombre d’éléments,  le nombre d’éléments supprimés, le quota, … etc, le tout bien entendu proprement formaté et prêt à l’usage. Indispensable à tout administrateur Exchange.

Source : https://practical365.com/

 

PowerShell – Temps d’exécution d’un script

La cmdlet Measure-Command permet de déterminer rapidement le temps d’exécution d’un script PowerShell.

Exemple :

La commande suivante liste simplement les processus en cours dont le nom commence par un “W”

Si vous désirez voir le temps d’exécution de cette commande, il suffit de la passer en paramètre de la cmdlet Measure-Command.

L’utilité de cette fonction peu ne pas être évidente au premier regard mais lorsque l’on traite des requêtes manipulant plusieurs milliers d’objets, cela peu faire toute la différence. Dans certains cas, l’optimisation d’un script permet de diviser son temps d’exécution par 10 voir par 100.

PowerShell – Generate Password

Le script ci dessous n’est pas très élaboré mais il a l’avantage d’être simple, compréhensible et facilement adaptable. Dans sa forme actuelle, il permet de générer un mot de passe de 9 caractères composé comme suit : une Majuscule + 4 caractères minuscules + 1 caractère spécial + 3 chiffres. Je vous laisse le soin de le modifier pour l’adapter à vos besoins.

Voici le résultat du script exécuté 20 fois :

 

PowerShell – Active Directory Audit Report

Les mots me manquent pour dire tout le bien que je pense de Zachary. Ce mec est génial. Et quand vous aurez vu ce dont ce script est capable, vous serez surement de mon avis.

Le script New-ADAssetReport permet de générer un fichier HTML (ou plutôt 2) avec une description très complète de votre annuaire :  niveaux fonctionnels, rôles FSMO, listes de DC (avec nom et adresse ip), liste des sites, des sous réseaux, détails sur la topologie, nombre et listes des utilisateurs avec pouvoir, …etc.

Petit aperçu du rendu :

Je vous conseille au passage d’aller faire un tour sur le site de l’auteur. Vous y trouverez des tas de scripts sympas : http://www.the-little-things.net/

Télécharger ici.

PowerShell – Exchange Environment Report

Ce script que nous devons à l’excellent Steve Goodman est une référence en la matière. Il permet de générer un rapport au format html synthétisant l’essence de votre environnement Exchange :

  • Nombre de serveurs Exchange (avec leur role, version de l’OS, version et niveau de correctif Exchange)
  • Le nombre total de boites aux lettres avec répartition par base de données
  • Liste des DAG avec leurs serveurs membres
  • Taille des bases de données, nombre de boites aux lettres par base, taille moyenne des boites aux lettres, dernière sauvegarde, …
  • Compatible Exchange 2010, 2013 et 2016
  • etc…

Cliquez sur l’image pour avoir un apercu d’un rapport.

Vraiment un outil indispensable, je ne m’en sépare jamais.

Source : Steve Goodman’s Office 365 and Exchange Blog

PowerShell – Créer des utilisateurs Active Directory depuis un fichier CSV

Un grand classique. Ce petit script Powershell suivant permet de lire un fichier CSV contenant une liste d’utilisateurs et de créer pour chacun un compte Active Directory.

Votre fichier CSV doit contenir au moins les colonnes suivantes : GivenName (Prénom), Surname (Nom), Login, Password, Title, Phone, …  à vous de choisir les informations qui vont sembleront pertinentes.

Note : Ce script a été testé sous Windows 2012 R2.