La gestion des machines virtuelles va essentiellement s’opérer grâce à la famille de commandes « VM ». Ainsi pour démarrer une machine virtuelle, nous utiliserons Start-VM et pour l’arrêt Stop-VM ou Shutdown-VM.
PowerShell, Gestion des machines virtuelles
Exemple 1 : Démarrage d’une machine virtuelle
PS > Start-VM -VM ‘Windows 7 X64’
Cette commande donne l’ordre à la machine virtuelle de démarrer, puis elle retourne un objet de type VM et nous affiche toutes ses propriétés. En regardant la propriété Status, nous savons si l’action a réussi où non. Une autre façon de le savoir est d’aller consulter l’état du dernier travail (job) effectué.
Pour se faire, utilisons la ligne de commandes suivante :
PS > Get-Job | Select-Object -First 1
Description : Arrêter l’ordinateur virtuel
IsVisible : True
Status : Completed
StatusString : Terminé
ErrorInfo : Success (0)
StartTime : 13/09/2010 22:27:52
EndTime : 13/09/2010 22:27:53
Owner : PS-SCRIPTING\Administrator
OwnerSID : S-1-5-21-3628732846- 2239576409-4110719840-500
Name : Arrêter l’ordinateur virtuel
Steps : {Arrêter l’ordinateur virtuel}
CurrentStep : Arrêter l’ordinateur virtuel
ProgressValue : 100
Progress : 100 %
WasNotifiedOfCancel : False
CmdletName : Stop-VM
PROTipID :
ResultObjectID : 2f96fe4b-101b-49d2-bfde-76db17b9ce71
TargetObjectID : 2f96fe4b-101b-49d2-bfde-76db17b9ce71
TargetObjectType : VM
IsCompleted : True
AreAuditRecordsAvailable : False
AuditRecords : {}
AdditionalMessages : {}
Source :
Target :
ResultObjectType : VM
ResultObjectTypeName : Ordinateur virtuel
ResultName : Windows 7 X64
IsRestartable : False
IsStoppable : False
ID : 97026e63-01fe-4c19-9dad-04512ce39831
MarkedForDeletion : False
IsFullyCached : True
La propriété ErrorInfo ayant la valeur « Success », nous pouvons donc considérer que le travail s’est correctement exécuté. Attention toutefois, il faut bien avoir conscience qu’il faut dissocier le démarrage de la VM du démarrage de l’OS. En effet, la machine pourrait très bien être démarrée et le système d’exploitation « planté ».
Exemple 2 : Arrêt « brutal » d’une machine virtuelle
PS > Stop-VM -VM ‘Windows 7 X64’
Stop-VM a le même effet que si vous débranchiez la prise électrique d’une machine physique. C’est à utiliser en dernier recours, si un arrêt « propre » du système n’a pas d’effet, par exemple.
Exemple 3 : Arrêt « propre » d’une machine virtuelle
PS > Shutdown-VM -VM ‘Windows 7 X64’
Pour que cette commande puisse fonctionner correctement, il faut que des agents soient installés à l’intérieur des VM. Dans le monde Microsoft ces derniers s’appellent « Services d’intégration » et dans le monde VMWare ce sont les « VMWare tools ».
Il est intéressant de noter que cette commande suspend l’exécution de PowerShell tant que la machine n’est pas arrêtée. Pour forcer PowerShell à rendre la main, c’est à dire à continuer l’exécution sans attendre, il faut ajouter le commutateur -RunAsynchronously.
PS > Shutdown-VM -VM ‘Windows 7 X64’ -RunAsynchronously
A présent pour connaître l’état d’avancement de la tâche, il suffit de regarder l’état du dernier travail en cours comme précédemment.
PS > Get-Job | Select-Object -First 1
Description : Arrêter l’ordinateur virtuel
IsVisible : True
Status : Running
StatusString : En cours d’exécution
ErrorInfo : Success (0)
StartTime : 13/09/2010 22:59:06
EndTime :
Owner : PS-SCRIPTING\Administrator
OwnerSID : S-1-5-21-3628732846-2239576409-4110719840-500
Name : Arrêter l’ordinateur virtuel
Steps : {Arrêter l’ordinateur virtuel}
CurrentStep : Arrêter l’ordinateur virtuel
ProgressValue : 0
Progress : 0 %
WasNotifiedOfCancel : False
CmdletName : Shutdown-VM
…
L’arrêt est toujours en cours. On attend quelques instants puis on interroge à nouveau le travail en cours.
PS > Get-Job | Select-Object -First 1
Description : Arrêter l’ordinateur virtuel
IsVisible : True
Status : Completed
StatusString : Terminé
ErrorInfo : Success (0)
StartTime : 13/09/2010 22:59:06
EndTime : 13/09/2010 23:00:13
Owner : PS-SCRIPTING\Administrator
OwnerSID : S-1-5-21-3628732846-2239576409-4110719840-500
Name : Arrêter l’ordinateur virtuel
Steps : {Arrêter l’ordinateur virtuel}
CurrentStep : Arrêter l’ordinateur virtuel
ProgressValue : 100
Progress : 100 %
WasNotifiedOfCancel : False
CmdletName : Shutdown-VM
Cette fois, c’est bon, le travail est terminé et il s’est terminé correctement.
Pour aller plus loin sur PowerShell avec les experts @ITPROFR :
Powershell, une ligne de commande qui a su se faire désirer · iTPro.fr
Les 10 éléments clés à connaître pour tirer parti de PowerShell · iTPro.fr
Téléchargez cette ressource
Guide inmac wstore pour l’équipement IT de l’entreprise
Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre dossier Green IT sur les actions engagés par inmac wstore pour réduire son impact environnemental