Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $a = "<style>"
- $a = $a + "BODY{background-color:peachpuff;}"
- $a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"
- $a = $a + "TH{border-width: 1px;padding: 1px;border-style: solid;border-color: black;background-color:thistle}"
- $a = $a + "TD{border-width: 1px;padding: 1px;border-style: solid;border-color: black;background-color:PaleGoldenrod}"
- $a = $a + "</style>"
- [array]$vcenter_srv = @("10.1.1.100","myvcenter.mydomain.com")
- [array]$allobj = @()
- [string]$Admin = "Sudershan.Bharti@gmail.com"
- [string]$vPass = "Passw0rd"
- $OutputPath="C:\Temp\ClusterVMsToolsHW"
- Remove-Item -Path ($OutputPath + "\*.*") -Confirm:$false -Force:$true -ErrorAction SilentlyContinue 2>&1 > $null
- $vcenter_srv |
- %{
- Connect-VIServer $_ -User $Admin -Password $vPass -ErrorAction Stop
- $vC = $_
- $obj = New-Object -TypeName PSObject
- $v600 = "6.5.0"
- $v600 = "6.0.0"
- $v550 = "5.5.0"
- $v510 = "5.1.0"
- $v500 = "5.0.0"
- $v410 = "4.1.0"
- $v410 = "4.0.0"
- $vmx13 = "v13"
- $vmx11 = "v11"
- $vmx10 = "v10"
- $vmx9 = "v9"
- $vmx8 = "v8"
- $vmx7 = "v7"
- $Clusters = Get-Cluster
- Foreach ($Cluster in $Clusters)
- {
- $i = 1
- $AllVMs = $Cluster | Get-VM | Where-Object {$_.PowerState -eq "PoweredOn"}
- Foreach ($vm in $AllVMs)
- {
- $ESXiHVer = ($vm.VMHost).Version
- $HWVer = [string]$vm.Version
- If($ESXiHVer -eq $v550 -and $HWVer -eq $vmx10)
- {
- $VMHWVerStatus = "OK"
- }
- elseif (($vm.VMHost).Version -eq $v550 -and [string]$vm.Version -ne $vmx10)
- {
- $VMHWVerStatus = "Update available"
- }
- elseif (($vm.VMHost).Version -eq $v510 -and [string]$vm.Version -eq $vmx9)
- {
- $VMHWVerStatus = "OK"
- }
- elseif (($vm.VMHost).Version -eq $v510 -and [string]$vm.Version -ne $vmx9)
- {
- $VMHWVerStatus = "Update available"
- }
- elseif (($vm.VMHost).Version -eq $v500 -and [string]$vm.Version -eq $vmx8)
- {
- $VMHWVerStatus = "OK"
- }
- elseif (($vm.VMHost).Version -eq $v500 -and [string]$vm.Version -ne $vmx8)
- {
- $VMHWVerStatus = "Update available"
- }
- elseif (($vm.VMHost).Version -eq $v410 -and [string]$vm.Version -eq $vmx7)
- {
- $VMHWVerStatus = "OK"
- }
- elseif (($vm.VMHost).Version -eq $v410 -and [string]$vm.Version -ne $vmx7)
- {
- $VMHWVerStatus = "Update available"
- }
- elseif (($vm.VMHost).Version -eq $v400 -and [string]$vm.Version -eq $vmx7)
- {
- $VMHWVerStatus = "OK"
- }
- elseif (($vm.VMHost).Version -eq $v400 -and [string]$vm.Version -ne $vmx7)
- {
- $VMHWVerStatus = "Update available"
- }
- elseif (($vm.VMHost).Version -eq $v600 -and [string]$vm.Version -eq $vmx11)
- {
- $VMHWVerStatus = "OK"
- }
- elseif (($vm.VMHost).Version -eq $v600 -and [string]$vm.Version -ne $vmx11)
- {
- $VMHWVerStatus = "Update available"
- }
- elseif (($vm.VMHost).Version -eq $v650 -and [string]$vm.Version -eq $vmx13)
- {
- $VMHWVerStatus = "OK"
- }
- elseif (($vm.VMHost).Version -eq $v650 -and [string]$vm.Version -ne $vmx13)
- {
- $VMHWVerStatus = "Update available"
- }
- Else{
- $VMHWVerStatus = "Validate"
- }
- $props = @{
- "vCenter" = $vC;
- "ClusterName"= $Cluster.Name;
- "VMName"= $vm.Name;
- "OS" = $vm.ExtensionData.summary.config.guestfullname;
- "VMToolsVersionStatus" = $vm.ExtensionData.Guest.ToolsVersionStatus;
- "ESXiHost" = $vm.VMHost;
- "ESXiHostVersion" = ($vm.VMHost).Version;
- "HWVersion" = [string]$vm.Version;
- "VMHWVersionStatus" = $VMHWVerStatus
- }
- $obj = New-Object -TypeName PSObject -Property $Props
- $obj = $obj | Select-Object -Property "vCenter", "ClusterName", "VMName", "OS", "VMToolsVersionStatus", "ESXiHost", "ESXiHostVersion","HWVersion", "VMHWVersionStatus"
- $allobj += $obj
- $props = ""
- Write-Progress -Activity "Looking up Clusters" -Status "Current Cluster: $($Cluster.Name) in $vC" -PercentComplete ($i/(($AllVMs| Measure).Count)*100)
- $i++
- }
- }
- Disconnect-VIServer * -Confirm:$false
- }
- $allobj | Select-Object -Property * | Export-Csv -Path $OutputPath\ClusterVMsToolsHW.csv -NoTypeInformation
- $allobj | ConvertTo-Html -Head $a | Out-File $OutputPath\ClusterVMsToolsHW.html
- $emailto = "Sudershan.Bharti@gmail.com"
- $emailcc = "Sudershan.Bharti@gmail.com"
- $emailfrom = "ClusterVMsToolsHW@gmail.com"
- $smtpserver = "smtp.gmail.com"
- $vmbody = Get-Content $OutputPath\ClusterVMsToolsHW.html
- Send-mailmessage -to $emailto -cc $emailcc -from $emailfrom -subject "Cluster VMTool HW# Report" -body ($vmbody | out-string) -BodyAsHtml -SmtpServer $smtpserver
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement