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