lunedì 12 gennaio 2009

Hyper-V Script - Identificare le VM connesse ad una Virtual Network con Powershell

powersh Lavorando con una infrastruttura Virtuale abbastanza complessa, con diverse VM e Virtual Network, vi sarà sicuramente capitato di trovarvi nella situazione di dover eliminare una Virtual Network.
Se avete ben documentato la vostra infrastruttura virtuale saprete sicuramente quale VM erano/sono connesse alla Virtual Network che vi apprestate ad eliminare. Già adottare una chiara toponomastica aiuta molto.
Nel caso in cui non abbiate documentato la vostra infrastruttura, oppure vi troviate ad intervenire su una infrastruttura preesistente da un cliente e volete fare ordine...Vi troverete nella situazione di chiedervi: quali VM sono connesse ad una Virtual Network ?

Quali strumenti mette a disposizione Hyper-V?
1. Virtual Network Manager
2. Virtual Machine Settings
3. Powershell

1. Virtual Network
Virtual Network Manager
di Hyper-V non aiuta molto in quanto, chi ha avuto gia' modo di lavorarci, non fornisce questo tipo di informazione. Possiamo solo creare/configurare/eliminare gli oggetti Virtual Network, poco altro. Il livello di informazioni fornite sulla infrastruttura  è pari a ZERO. Non fa al nostro caso.

01

Attenzione: Virtual Network Manager vi permette di eliminare VN in uso senza chiedervi conferma. Una volta selezionata la VN, fatto clic su Remove | OK. Ciao Ciao... Ricrearla con lo stesso nome non serve!


2. Virtual Machine Settings

Tramite Hyper-V Manager dovremmo andare ad analizzare la configurazione di ciascuna VM per vedere a quali Virtual Network è connessa. Operazione che, se si tratta di poche VM, possiamo ancora fare a mano ma, nel caso in cui le VM siano tante - nemmeno poi tante a dir la verità - non arrivate alla terza VM che vi siete belli che stufati. Se poi condiamo il tutto con le classiche distrazioni del caso, si rischia di fare, inutilmente, una frittata. Quindi la modalità, per quanto fattibile, risulta poco pratica e soggetta ad errore (umano).

02 

3. Powershell

Per risolvere questo problema ed eliminare con sicurezza una Virtual Network basta utilizzare Powershell. Basta utilizzare la Hyper-V Management Library, disponibile gratuitamente su CodePlex, e qualche concetto sul funzionamento di Powershell.
Una volta caricata la Hyper-V Management Library sul nostro server Hyper-V, basterà eseguire, con i privilegi amministrativi, il seguente comando:

PS C:\Users\Administrator> Get-VM -server MT-HPV | List-VMNic | foreach ($_) { if ($_.Network -eq "vLAN") { write-host $_.VM }}

dove:
MT-HPV è il server Hyper-V, se lo eseguite direttamente su Hyper-V non è necessario.
vLAN  è il nome della Virtual Network che vogliamo eliminare.

Una volta lanciato il comando Powershell, sarà restituito l'elenco delle VM che sono connesse alla Virtual Network vLAN. Di seguito uno screeshot del risultato:

00
Nel mio caso l'eliminazione della Virtual Network vLAN avrebbe disconnesso ben 10 VM...un bel problema!! 

Nota:
Le VM elencate sono tutte quelle connesse alla Virtual Network vLAN, indipendentemente dal loro stato (in esecuzione, spenta o in pausa). 

Per domande, commenti, suggerimenti sul forum di VMexperts.org

Luca

Luca Conte, MCSE/MCSA:Security, MCT, VMWare VCP
Consulting Services & Professional Training
Virtualization Discovery - http://www.virtualizationdiscovery.com
Virtualization Technical Days - http://days.virtualizationdiscovery.com


Riferimenti
CodePlex - Open Source Project Community
PowerShell management Library for Hyper-V
Ricavare il GUID delle VM con Powershell
Home Page Powershell
KB952627 - Description of the Windows Vista Service Pack 1 Management Tools update for the release version of Hyper-V


Download

Download Download PowerShell management Library for Hyper-V
Download

Download RSAT for Windows Vista Service Pack 1 (32-bit) Edition.

Download

Download RSAT for Windows Vista Service Pack 1 (64-bit) Edition.

Download

Download the Update for Windows Vista (32-bit).

Download

Download the Update for Windows Vista (64-bit).

Etichette: , , , ,

mercoledì 7 gennaio 2009

Top 10 PowerShell scripts that VMware administrators should use

top10 Di seguito vi riporto i 10 script Powershell che, secondo Eric Siebert, tutti gli amministratori VMware dovrebbero conoscere/usare:

1. Quick Migration
2. Report into MS Word
3. Dynamic Resource Pool Calculator
4. VMware Infrastructure Power Documenter
5. ESX Automated Configuration Midwife
6. VMware Health Check script
7. Track Datastore Free Space
8. List disk RDMS
9. Find snapshots and send email to user/users with
10. Setting Video Hardware Acceleration Level

fonte:virtual-strategy.com


Luca

Luca Conte, MCSE/MCSA:Security, MCT, VMWare VCP
Consulting Services & Professional Training
Virtualization Discovery - http://www.virtualizationdiscovery.com
Virtualization Technical Days - http://days.virtualizationdiscovery.com


Riferimenti
Articolo di Eric Siebert su Virtual-Strategy.com
Home Page Microsoft Powershell
PowerGUI by Quest Software(Free)
VMware Infrastructure Management
VMware VI Toolkit for Windows
Powershell Book (Free)

Etichette: , , ,

martedì 6 gennaio 2009

Ricavare il GUID delle VM con Powershell

powersh Per ottenere il GUID di una VM possiamo utilizzare la PowerShell management Library for Hyper-V disponibile gratuitamente su CodePlex. Il GUID è possibile utilizzarlo per la creazione di shortcut così da avviare rapidamente le VM, anche nel caso in cui siano state rinominate - vedi post Tip - Lanciare rapidamente una VM Hyper-V con VM Connection -.

Di seguito il codice Powershell della prima versione, più spartana e breve da scrivere, del codice da utilizzare:
PS C:\Users\Administrator> get-vm -server <NomeServerHyper-V> | Format-table -property ElementName,Name

Dove
<NomeServerHyper-V> - Nome del server Hyper-V. Se lanciate lo script direttamente sul server Hyper-V questo parametro è opzionale.

Lo script deve essere lanciato con privilegi amministrativi e dopo aver caricato la Powershell Library.
Di seguito un esempio d'uso ed il risultato:
PS C:\Users\Administrator> get-vm -server MT-HPV | Format-table -property ElementName,Name

22 

Migliorare l'output a video

Volendo infiocchettare meglio l'output a video, ad esempio con delle intestazioni di colonna personalizzate ed un ridimensionamento automatico della larghezza, possiamo utilizzare il seguente codice:

PS C:\Users\Administrator> get-vm -server MT-HPV | Format-table -property @{Label="VM Name";Expression={$_.ElementName}}, @{Label="GUID";Expression={$_.Name}} -autosize

21


Conoscere il GUID di una sola VM

Se siamo interessati ad una sola VM, basta aggiungere in nome della VM che interessa.

PS C:\Users\Administrator> get-vm MI-SRV02 -server MT-HPV | Format-table -property @{Label="VM Name";Expression={$_.ElementName}}, @{Label="GUID";Expression={$_.Name}} -autosize

Di seguito il risultato

20

Per domande, commenti, suggerimenti sul forum di VMexperts.org

Luca

 

Luca Conte, MCSE/MCSA:Security, MCT, VMWare VCP
Consulting Services & Professional Training
Virtualization Discovery - http://www.virtualizationdiscovery.com
Virtualization Technical Days - http://days.virtualizationdiscovery.com


Riferimenti
CodePlex - Open Source Project Community
PowerShell management Library for Hyper-V
Tip - Lanciare rapidamente una VM Hyper-V con VM Connection

Download   Download PowerShell management Library for Hyper-V  
   

Etichette: , ,