When I run below code in PowerCli I am getting desired information for all VCs but when I schedule(run) same script through PowerShell it give the information only about last VC in the list instead of all the VCs info.
Could you please help me to figure it out?
Additionally I run the PowerShell as administrator
################################Script##############
Import-Module VMware.VimAutomation.Core
Import-Module VMware.PowerCLI
$config = Get-PowerCLIConfiguration
if($config.DefaultVIServerMode -eq "Single"){
Set-PowerCLIConfiguration -DefaultVIServerMode Multiple
}
$vclist = "VC1","VC2","VC3","VC4"
foreach ($vc in $vclist){
connect-viserver $vc
}
function Get-VMHostinventory {
foreach ($vmhost in Get-VMHost) {
Write-host $vmhost.Name
$Managementinfo = $vmhost | Get-VMHostNetworkAdapter | Where-Object {$_.ManagementTrafficEnabled -eq $true}
$ManagementIP = $Managementinfo | select-object -ExpandProperty ip
$Clusterinfo = $vmhost | Get-Cluster
$Clustername = $Clusterinfo.Name
$DataCenterinfo = Get-DataCenter -VMHost $VMHost.Name
$Datacentername = $DataCenterinfo.Name
#vCenterinfo
$vCenter = $vmhost.ExtensionData.CLient.ServiceUrl.Split('/:')[3]
$vcenterversion = $global:DefaultVIServers | where {$_.Name -eq $vCenter} | %{"$($_.Version) build $($_.Build)"}
$VmHostresult = New-Object PSObject
$VmHostresult | add-member -MemberType NoteProperty -Name "HostName" -Value $vmhost.Name
$VmHostresult | add-member -MemberType NoteProperty -Name "IP" -Value $ManagementIP
$VmHostresult | add-member -MemberType NoteProperty -Name "Esxi-Version" -Value $vmhost.Version
$VmHostresult | add-member -MemberType NoteProperty -Name "Build-Number" -Value $vmhost.Build
$VmHostresult | add-member -MemberType NoteProperty -Name "Cluster" -Value $ClusterName
$VmHostresult | add-member -MemberType NoteProperty -Name "Location" -Value $DatacenterName
$VmHostresult | add-member -MemberType NoteProperty -Name "vCenter Server" -Value $vcenter
$VmHostresult
}
}
Get-VMHostinventory
#To write information to csv file
Get-VMHostinventory | export-csv -path C:\Temp\output.csv -NoTypeInformation