L'objectif de ce script est d'automatiser l'ajout ou la suppression de cartes réseau pour VM indiquée.
Le script nous permettra de définir un nombre défini de cartes réseau à ajouter sur la VM.
Pour utiliser ce script il sera impératif de :
Le compte utilisateur doit être un compte ayant des privilèges administrateur sur vCenter.
Le script à utiliser est le suivant :
<#
. AUTEUR : Antoine JOVELIN
. FONCTION : Ajouter ou supprimer une carte reseau sur 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 "
####################################################
# Ajout ou suppression de cartes reseau sur une VM #
####################################################"
Write-Host;
do{
$addsupnetworkadapter = Read-Host -Prompt " Faut-il ajouter ou supprimer une carte reseau : [add/sup] "
if($addsupnetworkadapter -eq "add"){
Write-Host " ### Ajout de cartes reseau sur une VM ### " -ForegroundColor green
Write-Host;
$VMName = Read-Host -Prompt " Entrer le nom d'une VM "
Write-Host;
$NetworkNB = Read-Host -Prompt " Entrer le nombre de carte reseau a ajouter "
Write-Host;
$VLANName = Read-Host -Prompt " Entrer le nom du VLAN a ajouter "
Write-Host;
foreach ($i in 1..$NetworkNB){
new-networkadapter -vm $VMName -NetworkName $VLANName -Type "VMXNET3" -startconnected
}
}elseif($addsupnetworkadapter -eq "sup") {
Write-Host " ### Suppression de cartes reseau sur une VM ### " -ForegroundColor green
Write-Host;
$VMName = Read-Host -Prompt " Entrer le nom d'une VM "
Write-Host;
$etatVM = get-vm $VMName | select powerstate
if($etatVM.PowerState -eq "PoweredON"){
$herestring = @"
********** ATTENTION POUR SUPPRIMER UNE CARTE RESEAU LA VM DOIT ETRE ETEINTE **********
"@
$herestring
Write-Host;
$shutdown = Read-Host -Prompt " Continuer et eteindre une VM ? [oui/non] "
do{
if($shutdown -eq "non"){
Write-Host " ### Annulation de la suppression d'une carte reseau ### " -ForegroundColor yellow
}elseif($shutdown -eq "oui"){
Write-Host " ### Arrêt de la VM ### " -ForegroundColor green
Write-Host;
Shutdown-VMGuest -VM $VMName -Confirm:$false
sleep 10
Write-Host " Liste des cartes reseau : ### " -ForegroundColor yellow
Write-Host;
Get-NetworkAdapter -VM $VMName | select name, Type, NetworkName | ft
Write-Host;
$NetworkNB = Read-Host -Prompt " Entrer le nombre de carte reseau a supprimer "
Write-Host;
foreach ($i in 1..$NetworkNB){
$netadaptername = Read-Host -Prompt " Entrer le nom de la carte reseau a supprimer : "
Write-Host;
get-NetworkAdapter -vm $VMName | where {$_.Name -eq $netadaptername} | Remove-NetworkAdapter -Confirm:$false
write-Host " Suppression de la carte réseau $netadaptername effectuee " -ForegroundColor green
Write-Host;
}
}
}while ( ($shutdown -ne "oui") -and ($shutdown -ne "non"))
}elseif($etatVM.PowerState -eq "PoweredOFF"){
Write-Host " Liste des cartes reseau : ### " -ForegroundColor yellow
Write-Host;
Get-NetworkAdapter -VM $VMName | select name, Type, NetworkName | ft
Write-Host;
$NetworkNB = Read-Host -Prompt " Entrer le nombre de carte reseau a supprimer "
Write-Host;
foreach ($i in 1..$NetworkNB){
$netadaptername = Read-Host -Prompt " Entrer le nom de la carte reseau a supprimer : "
Write-Host;
get-NetworkAdapter -vm $VMName | where {$_.Name -eq $netadaptername} | Remove-NetworkAdapter -Confirm:$false
write-Host " Suppression de la carte réseau $netadaptername effectuee " -ForegroundColor green
Write-Host;
}
}
}
}while ( ($addsupnetworkadapter -ne "add") -and ($addsupnetworkadapter -ne "sup"))
Write-Host;
vcenter-disconnect