Início > Microsoft > Recuperando informações do Hyper-V com VMI e PowerShell

Recuperando informações do Hyper-V com VMI e PowerShell

Com o WMI, é possivel por exemplo recuperar informações do Hyper-V, sem a necessidade de interface gráfica
 
Vejamos o exemplo abaixo, que lista o nome da maquina virtual e a interface de rede que ela está conectada :
 
function get-infoVM {  
     begin {  
         $VmSwitchinfo = @(); 
     }  
     process {  
         $computer = $_
         $ListofVMs = gwmi -namespace rootvirtualization Msvm_ComputerSystem -filter "ElementName <> Name" -computer $computer  
         $ListofSwitches = gwmi -namespace rootvirtualization Msvm_VirtualSwitch -computer $computer  
         $ListofSwitchPorts = gwmi -namespace rootvirtualization Msvm_SwitchPort  -computer $computer 
         foreach ($Switch in $ListofSwitches) 
 { 
             $SwitchGUID = $Switch.Name 
             $SwitchDisplayName = $Switch.ElementName 
             $PortsOnSwitch = $ListofSwitchPorts | where {$_.SystemName -match $SwitchGUID} 
   
             foreach ($Port in $PortsOnSwitch) 
 { 
                 $PortPath = $Port.__PATH 
                 $ListofConnections = gwmi -namespace rootvirtualization Msvm_ActiveConnection -computer $computer                 
$a = $ListofConnections | where {$_.Antecedent -like $PortPath} 
                 if ($a -ne $NULL) 
 { 
                     $LANEndPoint = $a.Dependent  
                     foreach ($VM in $ListofVMs) 
 { 
                         $VMGUID = $VM.Name 
                         $VMDisplayName = $VM.ElementName 
                         if ($LanEndPoint -like "*$VMGUID*") 
 { 
   
                             $vminfo = "" |Select-Object VirtualMachine ,HostServer, switch
 
                             $vminfo.Switch = $SwitchDisplayName 
                             $vminfo.VirtualMachine = $VMDisplayName 
                             $vminfo.HostServer = $_ 
                             $vmswitchinfo += $vminfo 
   
                         } 
                     } 
                 } 
             } 
         }  
   
   
     }
    
 end {     
 $vmswitchinfo  
   } 
}

Quer saber como executar este código ?  É simples :

1. Abra o windows powershell,
2. Digite o código acima ( ou copie e cole )
3. Digite o nome do host hyper-v ( entre aspas ), seguido de pipe e o nome da função, como no exemplo a seguir:

 "localhost" | get-infoVM

 wmi-hyperv

A utilização de WMI e powershell, facilitam o dia a dia da administração.

 
Categorias:Microsoft
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: