Question Shutdown VM sous Vmware

Plus d'informations
il y a 6 ans 6 mois #24305 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Shutdown VM sous Vmware
shinobi écrit:

Désolé je scripte depuis peu :)

Ce n'est pas un soucis, faut juste comprendre ce que tu fais.

Avant l'appel de la boucle Do/Until, tu déclares ceci ( c'est du code utilisé par une méthode)
[code:1]
#Note : changer le type PSObject par le type de l'objet VM
[System.Predicate[psobject]] $Predicate={
param($Vm)
Write-Debug \"Vm=$($Vm.powerstate)\"
$Vm.powerstate -eq 'PoweredOff'
}
[/code:1]
Comme indiqué en note, il faut changer le type PSObject par le type de l'objet VM (que tu obtiens par $MyVm.GetType().fullname)
Ensuite tu utilises cette construction :
[code:1]
do {

... traitement du VMFOLDER1 avec 15 VM dedans ..

} until([array]::TrueForAll($VMFOLDER1 , $Predicate))

[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 6 mois #24306 par MEY Patrick
Réponse de MEY Patrick sur le sujet Re:Shutdown VM sous Vmware
Hello......J'ai planché un peu dessus hier soir :blink:

Je comprends que le -EQ classique va bien pour un tableau et que là il nous faut faire le test à l'intérieur de la boucle.
Ceci afin qu'il sorte de la boucle lorsque tout est en Poweredoff.

Par contre je ne sais pas quoi mettre à la place de psobject (je fais mon boulet lol :whistle: )

Entre-temps j'ai juste un peu modifié ma stratégie qui consiste à récupérer toutes les VM de 2 ESX et à y arrêter d'abord les applications avant de sortir de notre fameuse boucle \"array\" puis de lancer une nouvelle boucle qui arrêtera les databases avant de faire enfin un shutdown de mon ESX.

Si j'arrivais à utiliser ton système de boucle je serais le roi B)

[code:1]
###############################
## STOP Sequence of Room DC1 ##
###############################



#$VMDC1AP VM Applications of DC1

Write-host \"Shutting Down Applications VM on DC1\"

$VMDC1AP = Get-VMHost \"ESX1\",\"ESX3\" | Get-VM | where { $_.Notes -ne 'DB'} | Sort Name

$VMDC1AP | Shutdown-VMGuest

Write-host \"Applications VM on DC1 are shutted down\"


#$VMDC1DB VM Databases of DC1

Write-host \"Shutting Down Databases VM on DC1\"

$VMDC1DB = Get-VMHost \"ESX1\",\"ESX3\" | Get-VM | where { $_.Notes -eq 'DB'} | Sort Name

$VMDC1DB | Shutdown-VMGuest

Write-host \"Databases VM on DC1 are shutted down\"
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 6 mois #24308 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Shutdown VM sous Vmware
shinobi écrit:

Par contre je ne sais pas quoi mettre à la place de psobject

Le type des objets que tu manipules dans ton tableau de VM:
[code:1]$VMDC1AP[0].GetType().FullName[/code:1]
C'est ce type qui porte la propriété PowerState.
C'est nécessaire car la classe utilisée est une classe générique qui,en autre, évite des contrôles de type dans le code :
[code:1][System.Predicate[NomDuTypeManipulé]][/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.072 secondes
Propulsé par Kunena