Script Powershell para listar las conexiones de red de los host de virtualización gestionados por un servidor de System Center Virtual Machine Manager 2008
Publicado por urpiano en Miércoles 21 de Octubre de 2009
Este script nos permite obtener un listado de las conexiones de red de los hosts de virtualización que son gestionadas por un servidor de SCVMM, listado que se vuelca a un fichero de valores separados por tabuladores, ideal para ser abierto con Excel. El script es necesario que sea lanzado desde un servidor SCVMM o desde un equipo que tenga la consola de SCVMM instalada, para que así pueda cargar los Snap-ins de SCVMM.
La sintaxis de script es:
<ruta>\listar-conexiones-de-hosts -VMM <servidor scvmm> -Fichero <ruta y nombre de fichero>
Siendo:
- ruta (requerido): Powershell exige que los scripts sean lanzados indicando la ruta donde están, no le vale que estén en una carpeta que esté referenciada en la variable de entorno PATH. En el caso de que se encuentre en la misma carpeta donde se encuentra localizado el propio Powershell se puede poner como ruta un punto (.).
- VMM(requerido): Nombre del servidor SCVMM del que se obtendrá el listado.
- Fichero (requerido): ruta y nombre del fichero en el que se volcará el listado
Ejemplos:
Se listarán las conexiones de red de los hosts de virtualización gestionados por el servidor de System Center Virtual Machine Manager bacterio-vmm y el resultado se volcará en el fichero \\bacterio-fs\vmms\bacterio-vmm.tab. El script está situado en la misma carpeta en la que se encuentra Powershell al momento de invocarlo:
.\listar-conexiones-de-hosts -VMM bacterio-vmm -Fichero \\bacterio-fs\vmms\bacterio-vmm.tab
Se listarán las conexiones de red de los hosts de virtualización gestionados por el servidor de System Center Virtual Machine Manager bacterio-vmm y el resultado se volcará en el fichero \\bacterio-fs\vmms\bacterio-vmm.tab. El script se encuentra ubicado en la carpeta c:\scripts-ps\vmm:
c:\scripts-ps\vmm\listar-conexiones-de-hosts -VMM bacterio-vmm -Fichero \\bacterio-fs\vmms\bacterio-vmm.tab
Este es el código del script
################################################################################ # listar-conexiones-de-hosts.ps1 # # # # Este script lista las conexiones de red de todos los host de virtualización # # administrados por un servidor de SCVMM 2008. # # Recibe dos parametros: # # # # -VMM: Nombre o IP del servidor de SCVMM 2008 al que conectar # # -Fichero: Ruta y nombre del fichero de valores separados por # # tabulador en el que se guardará el listado. Ideal para # # ser abierto por Excel # # # # Ejemplo: # # # # .\listar-conexiones-de-hosts.ps1 -VMM SVMMBacterio Fichero c:\Redes.txt # # # # © Fernando Reyes # # Octubre de 2009 # # # ################################################################################ #Declaramos los parámetros que recibe el script param([string] $VMM, [string] $Fichero) # Comprobamos si están cargados los Cmdlets de Virtual Machine Manager. # En caso contrario los cargamos. If(!(Get-PSSnapin | ` Where-Object {$_.Name -eq "Microsoft.SystemCenter.VirtualMachineManager"` })) { Add-PSSnapin -name Microsoft.SystemCenter.VirtualMachineManager } # Conectamos al servidor de SCVMM $SCVMM = Get-VMMServer $VMM # Recorremos los hosts ForEach($HostSrv In (Get-VMHost |Sort-Object -Property HostCluster,Name)) ` { ` # Obtenemos las conexiones de red del host $Conexiones = Get-VMHostNetworkAdapter -VMHost $HostSrv # Recorremos las conexiones ForEach($Conexion In $Conexiones) ` { ` # Agregamos a la salida los datos $Salida = $Salida + ` $HostSrv.HostCluster + "`t" + ` $HostSrv.Name + "`t" + ` $Conexion.ConnectionName + "`t" + ` $Conexion.Name + "`t" + ` $Conexion.ConnectionState + "`t" + ` $Conexion.MacAddress + "`t" + ` $Conexion.VLANEnabled + "`t" + ` $Conexion.VLANMode + "`r`n" } # $Conexion } # $HostSrv # Ponemos los encabezados de tabla $Salida = "Cluster`tNodo`tConexion`tTarjeta`tEstado`tMAC`tVLAN`tModo`r`n" + ` $Salida # Volcamos los resultados al fichero de salida $Salida > $Fichero