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

Démarrer/arrêter une machine virtuelle

Tech - Par iTPro - 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. 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éthode

afin 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 gratuitement cette ressource

Le Guide d’Orchestration du Parcours client

Le Guide d’Orchestration du Parcours client

Au-delà de la clarification des nouveaux concepts de gestion du parcours client, ce guide vous permettra de définir, créer et mettre œuvre une orchestration complète articulée autour des trois volets essentiels au succès de l’expérience client et de l’entreprise.

Tech - Par iTPro - Publié le 30 août 2011