<#
. AUTEUR : Antoine JOVELIN
. FONCTION : Reboot une VM
. UTILISATION :
- Lancer le script
#>
cls
# Declaration des fonctions
function vcenter-connect{
$VC = Read-Host -Prompt " Entrer le nom de vCenter "
$cred = Get-Credential
Write-Host;
Write-Host -ForegroundColor cyan "Connexion à vCenter. Merci de patienter..."
Connect-VIServer $VC -Credential $cred
Write-Host;
}
function vcenter-disconnect{
Write-Host;
Write-Host -ForegroundColor cyan "Déconnexion de vCenter..."
Disconnect-viserver -Server $Global:DefaultVIServer -Confirm:$false -Force
Write-Host;
}
# Debut du script
vcenter-connect
Write-Host -fore Cyan "
#################
# Reboot une VM #
#################"
Write-Host;
$VMRebootName = Read-Host -Prompt " Entrer le nom d'une VM "
Write-Host;
Write-Host " Reboot de la VM dans quelques secondes"
1..3 | Sort-Object -Descending | %{Start-Sleep -Seconds 1 ;Write-Host " $_ "}
Write-Host;
Restart-VMGuest -VM $VMRebootName -Confirm:$false | Out-Null
Write-Host " Reboot en cours d'execution " -ForegroundColor yellow
Write-Host;
Write-Host;
vcenter-disconnect
L'objectif de ce script est d'automatiser le reboot de plusieurs VM.
Pour cela nous utiliserons un fichier .csv contenant les informations nécessaires au reboot.
Pour utiliser ce script il sera impératif de :
Attention : le temps d'exécution du script va dépendre du nombre de VM à traiter.
Pour effectuer le reboot des VMs, le script fonctionne en récupérant les informations depuis un fichier csv.
Ce fichier va comprendre plusieurs lignes :
Les informations devront obligatoirement être séparer par une virgule.
Dans cet exemple une seule VM sera reboot, pour en cibler d'autres il suffira d'ajouter les informations des autres VMs sur les lignes suivantes.
VMName
nom_de_la_vm1
nom_de_la_vm2
nom_de_la_vm3
Exemple :
Le compte utilisateur doit être un compte ayant des privilèges administrateur sur vCenter.
Ne pas oublier de remplir la variable$csvpath
Le script à utiliser est le suivant :
<#
. AUTEUR : Antoine JOVELIN
. FONCTION : Reboot une liste de VM
. UTILISATION :
- Lancer le script
#>
cls
# Declaration des fonctions
function vcenter-connect{
$VC = Read-Host -Prompt " Entrer le nom de vCenter "
$cred = Get-Credential
Write-Host;
Write-Host -ForegroundColor cyan "Connexion à vCenter. Merci de patienter..."
Connect-VIServer $VC -Credential $cred
Write-Host;
}
function vcenter-disconnect{
Write-Host;
Write-Host -ForegroundColor cyan "Déconnexion de vCenter..."
Disconnect-viserver -Server $Global:DefaultVIServer -Confirm:$false -Force
Write-Host;
}
$csvpath = ""
$rebootlist = Import-Csv -Path $csvpath
# Debut du script
vcenter-connect
Write-Host -fore Cyan "
###########################
# Reboot une liste de VMs #
###########################"
Write-Host;
foreach ($vmreboot in $rebootlist){
Write-Host " Reboot de la VM dans quelques secondes"
1..3 | Sort-Object -Descending | %{Start-Sleep -Seconds 1 ;Write-Host " $_ "}
Write-Host;
Restart-VMGuest -VM $VMRebootName -Confirm:$false | Out-Null
Write-Host " Reboot de la vm" $vmreboot.VMName " en cours d'execution " -ForegroundColor yellow
Write-Host;
}
Write-Host;
vcenter-disconnect