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"