Administrer Hyper-V avec Powershell sans SCVMM PDF Imprimer Envoyer
Note des utilisateurs: / 10
MauvaisTrès bien 
Écrit par Alban CAOUREN   


Manager hyper-V avec PowerShell sans SCVMM.

Quand on souhaite automatiser l'administration d'une infrastructure Hyper-V sans passer par les Command-Let apportés par SCVMM il est nécessaire de passer directement par le provider WMI de Hyper-V (Cf. http://msdn.microsoft.com/en-us/library/cc136992(VS.85).aspx).


Bien que très efficace, l'utilisation de WMI peut rapidement provoquer quelques maux de têtes aux non initiés, Microsoft ne fournissant pas pour l'instant de command-let propre à Hyper-V.


Parti de ce constat une équipe de développeur dirigée par Emit James s’est mis à la tâche et a développé une librairie de fonctions "Cmd-Let" pour hyper-V directement à partir du provider WMI. Superbe initiative qui présente un double intérêt.

  1. Fournir des commandes simples pour manager Hyper-V
  2. Illustrer l'utilisation du provider WMI de Hyper-V en étudiant le source du script


Car cette librairie est en réalité un script Powershell qui une fois exécuté va mettre à  notre disposition en mémoire des fonctions utilisables comme des "cmd-let".

Actuellement en version 10b, PSHYPERV vous délivre pas moins de 80 fonctions dont voici un petit aperçu.


Machine virtuelle

  • Créer des machines virtuelles
  • Récupérer des informations des VM
  • Export/Import des VM
  • Arrêter/Démarrer des VM
  • Tester la connexion Heart Beat

Mémoire

  • Gérer la mémoire l’allocation de mémoire des VM

Processeur

  • Allouer des coeurs
  • Récupérer des informations sur le nombres de coeurs

Disque dur

  • Ajouter/Supprimer des contrôleurs
  • Récupérer des informations sur les VHD
  • Créer des VHD
  • Compacter/Convertir
  • Monter des VHD

Carte réseau

  • Ajouter des cartes
  • Supprimer des cartes


Snapshots

  • Créer / Déplacer / Supprimer / Renommer

 

Installer et exécuter la librairie de commandes pour Hyper-V

Télécharger le package composé de deux fichiers sur CODEPLEX à cet endroit : http://pshyperv.codeplex.com/

  • Hyperv.ps1
  • Hyperv.format.ps1xml

Décompresser les 2 fichiers et placez les à la racine de votre profil utilisateur.

Le fichier xml contient la définition des formats de sortie, c'est à dire la mise en forme du résultat des commandes, laisser ce fichier dans le même emplacement que le script.


Ouvrez une session Powershell (Attention assurez vous d'avoir au préalable activé l’exécution des scripts PowerShell avec la comande set-ExecutionPolicy -executionpolicy unrestricted)

Placer-vous à la racine (l’endroit où les 2 fichiers ont étés extraits)

Chargez maintenant la librairie de commande PowerShell pour Hyper-V en saisissant la commande suivante :

. .\hyperv.ps1

Le script liste l'ensemble des fonctions misent à disposition.

 

 

Vous pouvez maintenant utilisez les nouvelles commandes.

Exemple : Modifier la mémoire allouée à une machine virtuelle.

PS E:\> shutdown-vm -vm [Ma_VM] -server [Mon_Serveur_Hyper-V]
Shutdown of '[Ma_VM]' started.

PS E:\> set-vmmemory -vm [Ma_VM] -memory 1200 -server [Mon_Serveur_Hyper-V]
Set memory for '[Ma_VM]' to 1200 MB.

PS E:\> start-vm -vm [Ma_VM] -server [Mon_Serveur_Hyper-V]
Changing state of [Ma_VM]: Job Started.


Et voila !

Vous pouvez désormais facilement automatiser toutes vos opérations d'administration en quelques lignes.

 

Charger les commandes directement dans son profil Powershell.

Si vous utilisez fréquemment ces commandes il peut être intéressant de charger ces fonctions directement dans votre profil Powershell.


Le profil est tout simplement un script Powershell exécuté lors du lancement de votre invite de commande Powershell. Celui ci n'existe pas par défaut, pour le créer, ouvrez une invite Powershell et taper la commande suivante :

PS C:\> new-item -path $profile -itemtype file -force

Taper ensuite la commande suivante pour éditer le fichier profil et y ajouter l'exécution du script.

PS C:\> Notepad $Profile

 

 

De cette manière les commandes Hyper-V seront directement disponibles dès que vous lancerez une invite de commande Powershell.

Réagissez à cet article sur notre Forum.

 

Search GuVirt

Partagez l'article

Liens sponsorisés

Joomla! is Free Software released under the GNU/GPL License.