<#$servers = (import-csv 'D:\State of North Dakota\-Tm-ITD-Virtualization - Documents\VMware\VMwareTools-Test.csv') $servers = import-csv C:\users\zmeier\desktop\servers-test.csv #$VMs = Get-VM | Where-Object { $_.ExtensionData.summary.config.ManagedBy.Type -ne "placeholderVm" } | where-object Name -eq itdzmtest222 $VMs = Get-VM | Where-Object { $_.ExtensionData.summary.config.ManagedBy.Type -ne "placeholderVm" } | where-object Name -match $servers $VMs = [System.Collections.ArrayList]@() ForEach($server in $servers[101..250]){ #Get-VM -Name asdf | Update-Tools -RunASync -NoReboot } $VMs = get-vm $servers.computername # Record Before Stats and Execute get-vm $servers.computername | select Name,@{n='ToolsVersion';e={$_.Guest.ToolsVersion}} -ov Before #$VMs | Update-Tools -NoReboot -RunASync # Status after #Get-VM -Name $VMs.ComputerName | select Name,@{n='ToolsVersion';e={$_.Guest.ToolsVersion}} -ov After Get-VM -Name $servers.computername | Where-Object PowerState -eq PoweredOn | where-object {$_.Guest.ToolsVersion -ne "12.0.0"} | select Name,@{n='ToolsVersion';e={$_.Guest.ToolsVersion}} -ov Left Get-VM -Name $servers.computername | Where-Object PowerState -eq PoweredOn | where-object {$_.Guest.ToolsVersion -ne "12.0.0"} #Get-VM -Name $servers.computername | where-object {$_.Guest.ToolsVersion -ne "12.0.0"} | Update-Tools -RunASync #Get-VM itdernappu01.nd.gov | Update-Tools -RunASync #> # 2022/03/20 $After = Get-VM | Where-Object { $_.PowerState -eq "PoweredOn" -and $_.ExtensionData.summary.config.ManagedBy.Type -ne "placeholderVm" } | select Name,@{n='ToolsVersion';e={$_.Guest.ToolsVersion}} <#$servers = @" itdernappu01.nd.gov "@ $servers = ConvertTo-Array -MultiLineString $servers #> # Reboot VM <#ForEach($server in $servers){ #Get-VM $server | Where-Object { $_.PowerState -eq "PoweredOn" -and $_.ExtensionData.summary.config.ManagedBy.Type -ne "placeholderVm" } | Restart-VMGuest }#> Get-VM $servers | Where-Object { $_.PowerState -eq "PoweredOn" -and $_.ExtensionData.summary.config.ManagedBy.Type -ne "placeholderVm" } | select Name,PowerState,@{n='ToolsVersion';e={$_.Guest.ToolsVersion}},@{n='ToolsState';e={$_.Guest.State}} | sort-object Name -ov Latest # Install VMware Tools, and reboot ForEach($server in $servers){ #Get-VM $server | Where-Object { $_.PowerState -eq "PoweredOn" -and $_.ExtensionData.summary.config.ManagedBy.Type -ne "placeholderVm" }| Where-Object { $_.PowerState -eq "PoweredOn" -and $_.ExtensionData.summary.config.ManagedBy.Type -ne "placeholderVm" } | Update-Tools -RunAsync start-sleep -seconds 1 } Get-VM $servers | Where-Object { $_.PowerState -eq "PoweredOn" -and $_.ExtensionData.summary.config.ManagedBy.Type -ne "placeholderVm" } | select Name,PowerState,@{n='ToolsVersion';e={$_.Guest.ToolsVersion}},@{n='ToolsState';e={$_.Guest.State}} | where-object ToolsVersion -ne "12.0.0" | sort-object Name -ov Left $Left.count Get-VM | Where-Object { $_.GuestId -like "*windows*" -and $_.PowerState -eq "PoweredOn" -and $_.ExtensionData.summary.config.ManagedBy.Type -ne "placeholderVm" } | select Name,PowerState,@{n='ToolsVersion';e={$_.Guest.ToolsVersion}},@{n='ToolsState';e={$_.Guest.State}} | where-object ToolsVersion -ne "12.0.0" | sort-object Name -ov AllLeft $AllLeft.count