Voici une partie du script que j’utilise pour exporter mes informations d’hôtes à notre CMDB, l’intérêt principale de celui-ci est l’utilisation de “Get-View” et donc sa rapidité d’exécution.
$vCenter = Read-Host "Entrer ici le nom ou l'ip du vCenter" Connect-VIServer $vCenter #Creation du dossier pour l'export md "C:\Scripts" -ErrorAction SilentlyContinue #Inventaire Hosts Get-View -ViewType HostSystem -Property Name, Config.Product, Summary.Hardware.Model, Summary.Hardware.MemorySize, Summary.Hardware.CpuModel, Summary.Hardware.NumCpuPkgs, Summary.Hardware.NumCpuCores, Summary, Hardware, Parent | select Name, @{N='Product';E={$_.Config.Product.FullName}}, @{N='Build';E={$_.Config.Product.Build}}, @{N='Model';E={$_.Summary.Hardware.Model}}, @{N='Memory';E={[Math]::Round(($_.Summary.Hardware.MemorySize)/ 1GB, 0)}}, @{N='CpuModel';E={$_.Summary.Hardware.CpuModel}}, @{N='CpuSocket';E={$_.Summary.Hardware.NumCPuPkgs}}, @{N='CpuCore';E={$_.Summary.Hardware.NumCpuCores}}, @{Name="Serial"; Expression={($_.Hardware.SystemInfo.OtherIdentifyingInfo | where {$_.IdentifierType.Key -eq "ServiceTag"}).IdentifierValue}}, @{N='Cluster';E={ $parent = Get-View -Id $_.Parent -Property Name,Parent While ($parent -isnot [VMware.Vim.ClusterComputeResource] -and $parent.Parent){ $parent = Get-View -Id $parent.Parent -Property Name,Parent } if($parent -is [VMware.Vim.ClusterComputeResource]){ $parent.Name}}}, @{N='DC';E={ $parent = Get-View -Id $_.Parent -Property Name,Parent Do {$parent = Get-View -Id $parent.Parent -Property Name,Parent} While ($parent.Moref.Type -ne "Datacenter" -and $parent.Parent) echo $parent.name}} | Export-csv -NoTypeInformation -encoding "unicode" -append "C:\Scripts\export-Hotes.csv"
Voici le résultat dans Excel :
Partager la publication "Script PowerCLI Inventaire Hôtes"