VMware print VMinfo
#!/usr/bin/pwsh
# 2 args are required: vmname and logfile
$VMName = $args[0]
$LOG = $args[1]
$VMvCenterName = 'vc01.test.lu'
$VMvCenterUser = 'user.vmw@vsphere.local'
$VMvCenterPass = 'passwd'
# Connect to vCenter
Write-Host "Connecting to vcenter $($VMvCenterName)..."
try {
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -WarningAction SilentlyContinue -confirm:$false
# Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false -DefaultVIServerMode Single
#Get-PowerCLIConfiguration
$VCSession = Connect-VIServer -Server $VMvCenterName -User $VMvCenterUser -Password $VMvCenterPass
}
catch {
write-host "Error to connect to vCenter $VMvCenterName."
exit -1
}
$VMinfo = Get-VM $VMName
Write-output "VM_Name:" | Out-File -Append -NoNewline -FilePath .\$LOG
Write-output $VMinfo | ForEach-Object {$_.Name} | Out-File -Append -FilePath .\$LOG
Write-output "VM_Host:" | Out-File -Append -NoNewline -FilePath .\$LOG
Write-output $VMinfo.VMHost | ForEach-Object {$_.Name} | Out-File -Append -FilePath .\$LOG
Write-output "VM_Uuid:" | Out-File -Append -NoNewline -FilePath .\$LOG
Write-output $VMinfo.ExtensionData.Config.InstanceUuid | Out-File -Append -FilePath .\$LOG
Write-output "VM_Files:" | Out-File -Append -NoNewline -FilePath .\$LOG
Write-output $VMinfo.ExtensionData.Config.Files.VmPathName | Out-File -Append -FilePath .\$LOG
$VMListDisk = Get-HardDisk -VM $VMName
foreach ($VMDisk in $VMListDisk) {
Write-output "VM_Disk:" | Out-File -Append -NoNewline -FilePath .\$LOG
Write-output $($VMDisk.Filename) | Out-File -Append -FilePath .\$LOG
}
foreach ($VMDatastore in $VMListDatastore) {
Write-output "VM_Datastore" | Out-File -Append -NoNewline -FilePath .\$LOG
Write-output "VM_Datastore":[$($VMDatastore.Name)] $($VMDatastore.DiskUuid.Replace('naa.','')) | Out-File -Append -FilePath .\$LOG
}
Disconnect-VIServer -Server $VMvCenterName -Confirm:$false