> Tech > Démarrer et arrêter une machine virtuelle

Démarrer et arrêter une machine virtuelle

Tech - Par Renaud ROSSET - Publié le 30 août 2011
email

L’arrêt/démarrage d’une machine virtuelle s’effectue sur le même modèle que l’exemple précédent ; c’est à dire que nous allons utiliser la même classe d’objets à savoir Msvm_ComputerSystem.

Démarrer et arrêter une machine virtuelle

Ce qui va changer en revanche, c’est que cette fois-ci au lieu d’utiliser des propriétés d’objets, nous utiliserons une méthodeafin d’agir sur l’instance (objet) représentant une machine virtuelle.

La première chose à faire est d’obtenir une référence vers la machine virtuelle à démarrer ou arrêter.
Pour ce faire nous allons effectuer un filtre sur le nom d’une machine virtuelle. Par exemple supposons que nous voulions démarrer la machine virtuelle dont le nom est « Windows 7 X64 » :

PS > $VMList = Get-WmiObject -Namespace root\virtualization Msvm_ComputerSystem -ComputerName
HYPERV-SRV

PS > $VM = $VMList | Where-Object {$_.ElementName -eq ‘Windows 7 X64’}

Ensuite nous n’avons plus qu’à appliquer la seule méthode disponible pour cette classe à savoir la méthode RequestStateChange. Nous lui indiquons la valeur 2 qui signifie « démarrer ».

PS > $resultat = $VM.RequestStateChange(2)
PS > $resultat


Job : \\HYPERV-SRV\root\virtualization:Msvm_ConcreteJob.InstanceID= »21825FC8-2830-4C90
B1D5-9B2EFD8C57BC »
ReturnValue : 4096

Etant donné que l’arrêt ou le démarrage n’est pas immédiat (action asynchrone), nous obtenons en retour un objet qui comprend un code de retour et une référence vers un « job WMI ». La valeur 4096 signifie que l’ordre a bien été transmis. Pour connaître l’état du job WMI, il faut passer la commande suivante :

PS > [WMI]$resultat.job

Cancellable : True
Caption : Démarrage
DeleteOnCompletion : False
Description : Initialisation et démarrage de l’ordinateur virtuel
ElapsedTime : 00000000000001.841501:000
ElementName : Démarrage
ErrorCode : 0
ErrorDescription :
ErrorSummaryDescription :
HealthState : 5
InstallDate : 16010101000000.000000-000
InstanceID : 21825FC8-2830-4C90-B1D5-9B2EFD8C57BC
JobRunTimes : 1
JobState : 7
JobStatus : Le travail est terminé.
LocalOrUtcTime : 2
Name : Démarrage
Notify :
OperationalStatus : {17, 2}
OtherRecoveryAction :
Owner : HYPERV-SRV\Administrator
PercentComplete : 100
Priority : 0
RecoveryAction : 2
RunDay :
RunDayOfWeek :
RunMonth :
RunStartInterval :
ScheduledStartTime :
StartTime : 20100816124307.000000-000
Status : OK
StatusDescriptions : {Le travail est terminé., Le travail s’est correctement terminé.}
TimeBeforeRemoval : 00000000000500.000000:000
TimeOfLastStateChange : 20100816124309.000000-000
TimeSubmitted : 20100816124307.000000-000
UntilTime :

En observant la propriété StatusDescriptions, nous savons si le travail a été correctement exécuté ou non.

Pour résumer sur WMI…

L’interface WMI offre toute la richesse suffisante pour mener à bien toutes les tâches d’administration autour d’Hyper-V mais il faut au préalable bien s’imprégner de la documentation où alors s’inspirer d’exemples prêts à l’emploi. Ceci étant dit, il faut savoir qu’il existe également un jeu de commandes distribué sous la licence Microsoft Public license MS-PL proposé sous la forme d’un module. Celui-ci va grandement nous simplifier la vie…

Téléchargez cette ressource

*** SMART DSI *** VERSION NUMÉRIQUE

*** SMART DSI *** VERSION NUMÉRIQUE

Découvrez SMART DSI, la nouvelle revue du Décideur IT en version numérique. Analyses et dossiers experts pour les acteurs de la transformation numérique de l'entreprise, Gagnez en compétences et expertise IT Professionnelle avec le contenu éditorial premium de SMART DSI.

Tech - Par Renaud ROSSET - Publié le 30 août 2011