Clear-Host $VIserver = "Nom vCenter" $VILogin = "domaine\login" #Domaine\login avec droits de connexion au vCenter $VIMotdepasse = "YourPassword" #Mot de passe pour connexion au vCenter $VMLogin = "Login" #Login local pour connexion sur la VM $VMMotdepasse = "Password" #Mot de passe du compte local pour connexion sur la VM $DatastoreName = "[Nom du DataStore]" #Nom du datastore. Les crochets sont en plus du Datastore. Si votre Datastore se nomme Toto alors cela donnera $DatastoreName = "[Toto]" $isopath = "NomDossier1/NomDossier1/NomDuFichier.iso" #Chemin de l'ISO dans le Datastore $FullIsoPath = "$DatastoreName $isopath" #Création de la variable contenant et le Datastore et le chemin de l'ISO. Ne pas toucher. #Paramétrage du mode de traitement des erreurs $ErrorActionPreference = "Continue" if ($verbose) {$VerbosePreference = "Continue"} if ($debug) {$DebugPreference = "Continue"} $DebugPreference = "SilentlyContinue" Connect-VIServer -Server $VIserver -User $VILogin -Password $VIMotdepasse #Connexion au vCenter $UneVM = Get-VM -Name $UneLigne #Connexion à la VM Write-Host $UneVM.PowerState #Juste pour afficher si la VM est allumée ou non $Error.Clear() #Montage de l'ISO sur le lecteur DVD de la VM $MyCd = get-cddrive -VM $UneVM | set-cddrive -IsoPath $FullIsoPath -Connected $true -Confirm:$false #En bonus, exécution d'une commande sur la VM $DriveLetter = "D:" $ScriptText = "$DriveLetter\setup64.exe /S /v `"/qn REBOOT=R ADDLOCAL=ALL REMOVE=Hgfs,WYSE`"" Invoke-VMScript -VM $UneVM -ScriptText $ScriptText -ScriptType bat -GuestUser $VMLogin -GuestPassword $VMMotdepasse #Démonter l'ISO Set-CDDrive -CD $MyCd -NoMedia -Confirm:$false #Disconnect the ISO #Si erreur, affichage de cette dernière if($Error.Count -ne 0) { Write-Host "ERROR : $error[0]" }