Powercli : Vérification et connexion des cartes réseaux

Ce message est également disponible en : Anglais

Voici un script permettant de récupérer la liste des VMs ayant leurs cartes réseaux déconnectées. Le script génère un fichier CSV. A la fin vous pouvez également valider ou non la modification des adaptateurs réseaux remontés en état « Not Connected » par « Connected ».

Récemment je me suis retrouvé avec des VMs démarrées avec leurs adaptateurs réseaux non connectés. Pour autant les cartes étaient positionnées pour être connectées lors de la mise sous tension de la VM.


#########################################################################################
## Script check VM en etat disconnected    et reconnexion                                                                     #
##                                                                                                                                                       #
##                                                                                                                                                       #
## Julien VARELA – 10/02/2015    V1.0                                                                                                  #
## List des VMs disconnected                                                                                                              #
#########################################################################################

##Verif des modules VMware
$PSNAP= Get-PSSnapin VMware.VimAutomation.Core -erroraction ‘silentlycontinue’
if ($? -eq $false)
{
##Load VMware Modules
Write-Host « Chargement des modules Vmware »
asnp vmware.*
}
Else
{
Write-host « Module VMware déjà chargé »
}
$vcenter = Read-Host « Nom du vCenter (FQDN) »
$login = $host.ui.PromptForCredential(« Identifiant de connexion au vCenter », « Please enter your user name and password. », «  », « NetBiosUserName »)
$output = Read-host « chemin complet de l’export csv  ex : f:\temp\output.csv »

#Connexion au vCenter
connect-viserver -server $vcenter -credential $login

#Récupération de la liste des VMs allumées avec l’adaptateur réseaux en état connecté
$VMs=Get-NetworkAdapter (Get-vm | Where {$_.Powerstate -eq « PoweredOn »} ) | where {$_.Connectionstate.connected -eq $false -and $_.Connectionstate.StartConnected -eq $true}

#Construction d’un tableau avec Nom de VMs, Cluster, ESXi et Adaptateur Réseaux
$list= @()
Foreach ($vm in $VMs) {
foreach ($cluster in @($vm.parent | get-cluster)) {
foreach ($esx in @(get-vm $vm.parent)){
$obj= «  » | Select Name, Cluster, ESX, NetworkAdapter
$obj.Name = $vm.Parent
$obj.Cluster = $cluster.Name
$obj.ESX = $esx.VMhost.name
$obj.NetworkAdapter = $VMs.name
$list +=$obj
}
}
}
#Export de la liste des VMs
$list | Export-Csv $output -noTypeInformation | Format-Table -AutoSize

#Affichage de la liste des VMs
$list

#Choix de reconnexion des adaptateurs réseaux
$choice= [System.Windows.Forms.MessageBox]::Show(« Voulez vous connecter les adaptateurs? » , « Continuer ? » , 4)

if ($choice -eq « YES »)
{
Foreach ($vm in $list)
{
$NetworkAdapter = Get-NetworkAdapter -VM $vm.Name
Set-NetworkAdapter -NetworkAdapter $NetworkAdapter -connected:$true -confirm:$false
}
else
{
Write-Host « Pas de modifications »
}
}

 

Vous pouvez récupérer le script ici : check_connectednetwork

Laisser un commentaire