Je dédie ce post à PowerShell …

Good Evening tout le monde …

 

Vous savez, dans notre métier de Consultant Microsoft, nous avons parfois, voire souvent des missions d’audit et d’expertise à réaliser au sein de nos clients. C’est Fun et intéressant la plupart du temps.

 

En ce qui me concerne, l’audit et l’expertise sont devenus mon quotidien. Et qui dit audit répété ou expertise, il faut créer ses outils ou utiliser PowerShell. Avec mes missions, j’ai appris à aimer le scripting et sa force d’exécutions. Pour ne rien vous cacher, dans une de mes dernières missions, je devais créer un script PS qui devait traiter les postes clients reliquats n’ayant pas le client SCCM 2012:

  • Créer un fichier texte avec tous les noms des PC
  • Activer certains services (dus à la sécurité)
  • Créer un répertoire sur le poste local
  • Copier le client SCCM 2012 sur chaque poste
  • Vérifier la présence ou pas d’un client SCCM
  • Installer le client SCCM 2012 si celui-ci n’est pas présent
  • Vérifier la bonne version déployée
  • Désactiver les services
  • Créer un LOG en fonction de la date et de l’heure

 

Je vous simplifie le script pour ne pas tout dévoiler mais je peux vous assurer que cela fait travailler vos neurones et surtout, cela vous fait mettre les mains dans le cambouis et le debug de PowerShell. Et bien je peux vous promettre que j’ai pris énormément de plaisir à réaliser ce script …

 

Dans mes missions Hyper-v et SCVMM, je me suis habitué également à utiliser du PowerShell pour réaliser certaines choses lors d’un audit ou dans le déploiement de l’infrastructure de virtualisation. Récemment, j’ai du faire un audit Hyper-v 2k12 R2 et VMM 2k12 R2. Dans l’enchainement des tâches à vérifier, il vous faut passer par la case Services d’Intégration: s’assurer que toutes les machines virtuelles de votre plateforme aient bien la dernière version.

 

Etant donné que mon client avait un cluster Hyper-v, j’aime bien avoir le nom des machines virtuelles hébergées sur ce dernier via la cmdlet Get-ClusterGroup:

 

1 

 

 

En revanche, comme vous pouvez le constater, lorsque l’on tape cette commande, le résultat affiche toutes les ressources hébergées sur le cluster. Ce n’est pas ça que je veux … Je souhaite uniquement le nom des VM avec leur version des IC. Je vais devoir alors mettre en place un “filtre” pour n’avoir que ce que je demande:

Get-ClusterGroup | Where-Object {($_.Name –notlike “Available Storage”) –and ($_.Name –notlike “Cluster Group”)} | Get-VM | Format-Table Name, IntegrationServicesVersion

2

 

 

Et voilà le tour est joué … J’ai bien obtenu le nom de mes machines virtuelles avec la version des Services d’Intégration installée.

 

Un petit conseil pour la route: ne surestimez pas le pouvoir de PowerShell. Il vous sauvera la vie quotidiennement dans votre métier informatique.

 

 

 

David LACHARI – Le savoir ne vaut que s’il est partagé …

becloud

Passionné par la virtualisation, David est MVP Virtual Machine depuis 2010. Il intervient quotidiennement auprès de grands comptes afin de définir et déployer des architectures virtuelles. David est le fondateur de la société VSTART, spécialisée dans le conseil et l’expertise des solutions de virtualisation Microsoft.
Non classé

becloud

Passionné par la virtualisation, David est MVP Virtual Machine depuis 2010. Il intervient quotidiennement auprès de grands comptes afin de définir et déployer des architectures virtuelles. David est le fondateur de la société VSTART, spécialisée dans le conseil et l’expertise des solutions de virtualisation Microsoft.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *