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
Démarrer/arrêter une machine virtuelle
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 cette ressource

EDI : Pratiques de Performance Opérationnelle
Comment mieux satisfaire les directions métiers, rationaliser les échanges, améliorer la qualité des données et gérer l’obsolescence ? Découvrez dans ce livre blanc, les principaux enjeux autour de l’échange de données informatisé, les technologies complémentaires à l’EDI pour gagner en efficacité et les innovations d’offres de services fournis par Generix Group pour digitaliser vos processus.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Le numérique responsable
- Delinea : la réponse aux exigences d’accès des entreprises hybrides modernes
- Data, désapprendre pour développer ses compétences en matière de données
- Atos et Eviden : la réponse aux défis cybersécurité et numériques, européens et mondiaux
- Google Cloud : des mécanismes innovants de détection et de réponse
