Skip to content

Instantly share code, notes, and snippets.

@gcanales75
Last active December 4, 2015 04:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gcanales75/bd327082c5ba56ed7fac to your computer and use it in GitHub Desktop.
Save gcanales75/bd327082c5ba56ed7fac to your computer and use it in GitHub Desktop.
Reporte Configuracion vSphere (Kindda memoria tecnica)
## Script que genera CSV con informacion de la configuracion de distintos elementos en una
## instalacion de vSphere (5.1/5.5). Pensada en que corra al terminar una instalacion o con
## cierta frecuencia para mantener actualizada la informacion del entorno vSphere.
## Archivos CSV que va a generar el reporte
## -> Reporte de VMs
## -> Reporte de discos virtuales y configuracion
## -> Configuracion de politicas en PortGroups
## -> Configuracion de red en PortGroups
## -> IP y funcionalidades en PortGroups
## -> Datastores VMFS
## -> Datastores NFS
## -> Configuracion host ESXi
## -> Licencias hosts ESXi
## -> Cluster
## -> HostId de los ESXi
## Completar con la informacion de vCenter Server!!
$vCenter = "IP_de_vCenter_Server"
$user = "Usuario_con_derechos_de_administrador_de_vCenter"
$password = "contraseña_usuario_administrador"
## Variables que utizaremos mas tarde
$ok = "Si"
$noresp = "No"
$na ="N/A"
$on = "Encendida"
$off = "Apagada"
$running = "Running"
$current = "guestToolsCurrent"
$unmanaged = "guestToolsUnmanaged"
$noact = "No Actualizado"
$date = Get-Date
$foldername = Get-Date -Format yyMMdd
## Crea el directorio donde se depositaran los TXT
Set-Location -path c:\temp
md -Name $foldername
## Credenciales de vCenter y PS Snapin
Add-PSSnapin -name VMware.VimAutomation.Core
Connect-VIServer -Server $vCenter -User $user -Password $password
## Reporte de VMs
Get-VMHost -Name * | Get-VM |
Select @{Name="VM";E={$_.name}},
@{Name="Nombre DNS";E={$_.guest.hostname}},
@{Name="IP";E={$_.guest.ipaddress[0]}},
@{Name="vCPU";E={$_.numcpu}},
@{Name="Memoria (GB)";E={$_.memorygb}},
@{Name="VMware Tools";E={ if (($_.guest.ExtensionData.Toolsversionstatus -eq $current) -or ($_.guest.ExtensionData.Toolsversionstatus -eq $unmanaged)) { $ok } else { $noact }}},
@{Name="Sistema Operativo";E={$_.ExtensionData.Summary.config.guestfullname}},
@{Name="Estado";E={ if ($_.guest.state -eq $running) { $on } else { $off }}} | Export-Csv c:\temp\$foldername\VMs.csv
Add-Content c:\temp\$foldername\VMs.csv "`r`nReporte generado: $date"
## Reporte de discos virtuales y configuracion
Get-VM * | Get-HardDisk |
Select @{Name="VM";Expression={$_.Parent}},
@{Name="Disco";Expression={$_.name}},
@{Name="Capacidad GB";Expression={"{0:N1}" -f $_.CapacityGB}},
@{Name="Formato";Expression={if ($_.StorageFormat -eq 'Thin') { "Thin" } else { "Thick" }}},
@{Name="RDM";Expression={if ($_.ExtensionData.backing.LunUuid -ne $null) { "Si" } else { "No" }}},
@{Name="Independiente";Expression={if ($_.Persistence -eq 'Persistent') { "No" } else { "Si" }}},
@{Name="Persistente";Expression={if ($_.Persistence -eq 'IndependentPersistent' -or 'Persistent') { "Si" } else { "No" }}},
@{Name="Datastore";Expression={$_.FileName.Split(']')[0].TrimStart('[')}},
@{Name="Folder/VMDK";Expression={$_.filename.Split(']')[1]}} | Export-Csv c:\temp\$foldername\discos.csv
Add-Content c:\temp\$foldername\discos.csv "`r`nReporte generado: $date"
## Configuracion de politicas en PortGroups
Get-VMHost * | Get-VirtualPortGroup |
Select @{Name="Portgroup";E={$_.name}},
@{Name="Promiscuous Mode";E={$_.ExtensionData.ComputedPolicy.security.allowpromiscuous}},
@{Name="Mac Address Changes";E={$_.ExtensionData.ComputedPolicy.security.MacChanges}},
@{Name="Forged Transmits";E={$_.ExtensionData.ComputedPolicy.security.ForgedTransmits}},
@{Name="Host";E={$_.vmhostid}} | Export-Csv c:\temp\$foldername\politicas-sw.csv
Add-Content c:\temp\$foldername\politicas-sw.csv "`r`nReporte generado: $date"
## Configuracion de red en PortGroups
Get-VMHost * | Get-VirtualPortGroup |
Select @{Name="Portgroup";E={$_.name}},
@{Name="Active NIC";E={$_.ExtensionData.ComputedPolicy.nicteaming.nicorder.activenic}},
@{Name="Standby NIC";E={$_.ExtensionData.ComputedPolicy.nicteaming.nicorder.StandbyNic}},
@{Name="Balance Protocol";E={$_.ExtensionData.ComputedPolicy.nicteaming.Policy}},
@{Name="Failback";E={$_.ExtensionData.ComputedPolicy.nicteaming.ReversePolicy}},
@{Name="Notify switch";E={$_.ExtensionData.ComputedPolicy.nicteaming.NotifySwitches}},
@{Name="VLAN";E={$_.VLanId}},
@{Name="Host";E={$_.vmhostid}} | Export-Csv c:\temp\$foldername\conf-PG.csv
Add-Content c:\temp\$foldername\conf-PG.csv "`r`nReporte generado: $date"
## IP y funcionalidades en PortGroups
Get-VMHost * | Get-VMHostNetworkadapter | Where {$_.Name -like "vmk*"} |
Select @{Name="Portgroup";E={$_.PortGroupName}},
@{Name="IP";E={$_.IP}},
@{Name="Netmask";E={$_.SubnetMask}},
@{Name="Management";E={$_.ManagementTrafficEnabled}},
@{Name="vMotion";E={$_.VMotionEnabled}},
@{Name="Fault Tolerance";E={$_.FaultToleranceLoggingEnabled}},
@{Name="Host";E={$_.vmhostid}} | Export-Csv c:\temp\$foldername\conf-IP-vmkernel.csv
Add-Content c:\temp\$foldername\conf-IP-vmkernel.csv "`r`nReporte generado: $date"
## Datastores VMFS
Get-Datastore | where{$_.Type -eq "VMFS"} |
Select @{Name="Datastore";E={$_.Name}},
@{Name="Capacity (GB)";E={$_.capacityGB}},
@{Name="Type";E={$_.Type}},
@{Name="Version";E={$_.FileSystemVersion}},
@{Name="Canonical Name";E={(Get-ScsiLun -datastore $_ | Select -First 1).canonicalname}},
@{Name="URL (Folder)";E={$_.ExtensionData.Summary.Url}},
@{Name="Hosts conectados";E={$_.ExtensionData.Host.Key}}| Export-Csv c:\temp\$foldername\datastores-VMFS.csv
Add-Content c:\temp\$foldername\datastores-VMFS.csv "`r`nReporte generado: $date"
## Datastores NFS
Get-Datastore | where{$_.Type -eq "NFS"} |
Select @{Name="Datastore";E={$_.Name}},
@{Name="Capacity (GB)";E={$_.capacityGB}},
@{Name="Type";E={$_.Type}},
@{Name="NFS Server";E={$_.RemoteHost}},
@{Name="Folder";E={$_.RemotePath}},
@{Name="Hosts conectados";E={$_.ExtensionData.Host.Key}} | Export-Csv c:\temp\$foldername\datastores-NFS.csv
Add-Content c:\temp\$foldername\datastores-NFS.csv "`r`nReporte generado: $date"
## Configuracion host ESXi
Get-VMHost |
Select @{Name="Name";E={$_.Name}},
@{Name="Model";E={$_.Model}},
@{Name="Processor Model";E={$_.ProcessorType}},
@{Name="Cores";E={$_.NumCpu}},
@{Name="Sockets";E={$_.extensiondata.hardware.cpuinfo.numcpupackages}},
@{Name="Total cores";E={$_.ExtensionData.Hardware.CpuInfo.NumCpuCores}},
@{Name="Memory";E={$_.MemoryTotalGB}},
@{Name="Version ESXi";E={$_.Version}},
@{Name="Build";E={$_.Build}} | Export-Csv c:\temp\$foldername\hosts.csv
Add-Content c:\temp\$foldername\hosts.csv "`r`nReporte generado: $date"
## Licencias hosts ESXi
Get-VMHost |
Select @{Name="Name";E={$_.Name}},
@{Name="License Key";E={$_.LicenseKey}} | Export-Csv c:\temp\$foldername\licencias-esx.csv
Add-Content c:\temp\$foldername\licencias-esx.csv "`r`nReporte generado: $date"
## Cluster
Get-Cluster |
Select @{Name="Name";E={$_.Name}},
@{Name="HA Enabled";E={$_.HAEnabled}},
@{Name="DRS Enabled";E={$_.DRSEnabled}} | Export-Csv c:\temp\$foldername\cluster.csv
Add-Content c:\temp\$foldername\cluster.csv "`r`nReporte generado: $date"
## HostId de los ESXi
Get-VMHost | Select Name,Id | Export-Csv c:\temp\$foldername\vmhostId.csv
## Desconectar sesion de vCenter Server
Disconnect-VIServer -Server $vCenter -Force -Confirm:$false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment