====== 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