Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

System Center Advisor : Supervision en ligne

 

System Center Advisor est un nouveau service de supervision proposé par la plate-forme cloud Azure, permettant de visualiser en ligne au travers de dashboards basés sur des composants graphiques Silverlight, l’état de santé des applications ci-dessous:

  • Windows Server 2008, 2008 R2 et 2012

  • Active Directory

  • Hyper-V

  • Windows operating system

  • SQL Server
  • SharePoint 2010 et supérieur
  • Exchange Server 2010 et supérieur
  • Lync Server 2010 et supérieur
    En pratique, les serveurs ci-dessus communique avec une ou plusieurs Gateways SCOM, elles même connecté a la plateforme System Center Advisor dans le cloud Azure.
    Ce service gratuit se configure a travers les étapes suivantes:

image

 

– Récupération en ligne des sources de la Gateway et des agents

– Installation de la Gateway et des agents sur le périmètre de supervision.

– Enregistrement de la Gateway et approbation des agents

– Configuration de Runas accounts (Pour Sharepoint et Lync)

 

L’interface de supervision en ligne permet de visualiser l’état des composants, les alertes générés…a travers plusieurs types de vues.

Active Directory Replication Status Tool : « License has expired »

 

Cet outil permet de surveiller la réplication entre les contrôleurs de domaine sur l’ensemble d’une même forêt.

clip_image002

Pour les personnes ayant installé la version 1.0 Build 2.3.20717.1 (ou antérieur) de cet outil, un message d’erreur va apparaître : « The License has expired. Please download a new version of the Active Directory Replication Status Tool from the Microsoft website ».

clip_image004

Depuis le 08 juin 2013, les versions 2.3.20717.1 ou antérieures sont confrontées à cette erreur. Cela est dû au fichier License.xml que l’on trouve dans le répertoire C:\Program Files (x86)\Microsoft Active Directory Replication Status Tool\Licensing. En ouvrant le fichier, la date d’expiration apparaît :clip_image006

Ce fichier n’est pas modifiable puisqu’il est signé numériquement.

Afin de corriger ce problème, il est obligatoire de télécharger la dernière version de l’outil disponible depuis le 06 avril à l’adresse suivante : http://www.microsoft.com/download/details.aspx?id=30005

La version disponible est la build 2.4.20.717.1.

clip_image008

Elle expirera le 30 Novembre 2013.

clip_image010

Powershell v3.0 : Les Workflows

Introduction

L’une des grandes nouveautés de Powershell 3.0 est l’intégration des Workflows. Pour généraliser ceux-ci représente une série d’action sur lesquels on va pouvoir effectuer des actions pendant l’exécution. Concrètement, grâce à ceux-ci nous pouvons désormais :
Paralléliser l’exécution d’actions indépendantes les unes des autres. Cela était déjà faisable via les jobs mais la syntaxe des Workflow est orientée pour les traitements lourds.
– Interrompre puis reprendre des tâches.
– Placer des checkpoints permettant de reprendre des traitements à un endroit donné. Par exemple, si le workflow crashe, nous pouvons reprendre son exécution à partir du checkpoint et non dès le début.

Exemple d’utilisation

On peut imaginer toute sorte d’utilisation :
– Réaliser des pings en parallèle sur des ordinateurs (Traitement sur de multiples postes en même temps).
– Renommer un ordinateur puis reprendre l’exécution du workflow une fois le poste redémarré pour qu’il envoi un mail de confirmation à un administrateur (ou qu’il effectue un traitement).
– La création de machines virtuelles en parallèle.  Puis, on réalise un checkpoint, puisqu’elles n’auront plus à être recréées. Enfin on démarre les machines virtuelles en parallèle et on leurs fait rejoindre le domaine de l’entreprise.
– Créer parallèlement de nombreux ordres de déplacement de boîtes aux lettres dans le cas d’une migration Exchange.
– Créer un workflow contenant d’autres workflows tous exécuté en parallèle (Récupération en même temps, des comptes Active Directory désactivés, expiré, et verrouillé).

Tests et syntaxe

Ici, nous verrons comment implémentés les concepts que l’on a énoncé dans nos scripts. Les différents exemples se veulent simples afin de se focaliser sur la syntaxe.

La syntaxe est similaire au fonction. En effet, seul le mot clé diffère. Il s’agit de "workflow". L’appel au workflow se fait de la même façon que les fonctions.

Tout d’abord, nous allons comparer le temps d’exécution d’un workflow qui exécute 2 pauses d’une seconde en parallèle et une fonction qui réalise la même opération les unes à la suite des autres. Aussi au niveau de la syntaxe, on remarque que ce qui est parallélisé se trouve dans un block de code (entre accolades) précédé du mot clé "parallel".

03

Le résultat montre bien la différence entre les 2 modes d’exécution, puisque le workflow se réalise en un peu plus d’une seconde contre 2 pour la fonction.

04

A l’intérieur d’un bloc "parallel", il est possible d’insérer un bloc "sequence" pour être certain que les actions contenu dans celui-ci ne seront pas parallélisées. 

01

Le résultat obtenu permet de constater que les actions en parallèle s’exécute dans un ordre indéterminable (ici, le résultat de la ligne 9 s’affiche avant celui de la ligne 6 par exemple).

02

Il est aussi possible de gérer une boucle "ForEach" au travers de multiples exécution simultanées. Il suffit d’ajouter le paramètre "parallel".

09

Certaines commandes ne peuvent être traitées par le framework Workflow, il faut donc les inscrire dans un bloc "inlinescript". En voici un exemple avec "Get-ChildItem".

05

Pour qu’une variable déclaré dans un workflow soit accessible dans un bloc "inlinescript", il faut le préfixer par le mot clé "using:". Ci ce n’est pas le cas, alors Powershell est incapable de retrouver la valeur.

0607

Il en est de même si l’on souhaite modifier une valeur déclarer en dehors d’un bloc "parallel". Il faudra que celui-ci soit préfixé du mot "workflow:".

08

Enfin, le dernier thème abordé, sera celui de la sauvegarde, de la mise en pause et de la reprise d’un workflow.

Tout d’abord, la commande "Checkpoint-Workflow" permet de sauvegarder l’état d’un workflow. Ainsi, si celui-ci s’arrête à cause d’une erreur notamment, il pourra être repris à l’endroit où il s’est arrêté. Cela peut être intéressant pour éviter de ré exécuter des traitements lourds.

"Suspend Workflow" permet quant à elle de mettre en pause un traitement. Cette commande intègre automatiquement un checkpoint implicite afin de reprendre plus tard le workflow où il s’est arrêté.

Lorsqu’un workflow est suspendu via "Suspend-Workflow" ou une autre commande comme "Restart-Computer", il est possible de reprendre un traitement en cours via 2 méthodes. La première est manuelle.Lorsque l’on exécute le code ci-dessous, un job est créé. Grâce à l’un de ces attributs comme le nom ou l’ID , il est possible de redémarrer le workflow.

11

10

Pour l’exemple ci-dessous la commande à exécuter serait :

Get-Job -Name Job2 | Resume-Job -Wait

Afin de réaliser la même chose de façon automatisée, on crée un nouveau "job trigger". Celui-ci va nous permettre de gérer de l’évènementiel (lancer une tâche automatiquement à un moment donné).

L’exemple ci-dessous montre la création d’un "job trigger" qui lancera une tâche au démarrage. Cette dernière récupère le Workflow en suspend (ici "Myjob"), et le reprend. Contrairement à l’exemple précédent, on remarque qu’il est possible de définir le nom du job que prendre le workflow. En effet, lorsque l’on invoke un workflow, il existe le paramètre "JobName" qui permet de spécifier ce nom. Ce dernier est un paramètre qui existera pour n’importe quel workflow qui sera créé.

12