Skip to content

VirtuallyThatGuy

Anything VMware , PowerCLI, PowerShell, Automation and some Windows

Menu
  • Home
  • PowerCLI
  • VMware
  • Automation
  • Windows
  • About
Menu

Script: Reboot Horizon View VMs with Active connection using PowerCLI

Posted on June 18, 2022March 4, 2024 by VirtuallyThatGuy

This is a quick script to reboot horizon view VMs (VDI) with active users connected or Horizon desktops that have active session. This is useful for weekend patches or any other maintenance work.

$cred​​ =​​ Get-Credential
$vCenters​​ =​​ "lab-vcenter01.lab.local",​​ "lab-vcenter02.lab.local"
Connect-VIServer​​ $vCenters​​ -Credential​​ $cred


[CmdletBinding()]
Param
  (
        [Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()][String]$HZNServer,
        [Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()][String]$HZUser,
        [Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()][String]$HZPassword,
        [Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()][String]$HZDomain
        
    )

Function HZN-Reboot {
    try {
        Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false | out-null
        $HVServer = Connect-HVServer -Server $HZNServer -User $HZUser -Password $HZPassword -Domain $HZDomain
        $HVMachines = Get-HVMachineSummary
        $FHVMachines = $HVMachines | Select @{N='Desktop';E={$_.Base.Name}},@{N='Status';E={$_.Base.BasicState}} | Where-Object {$_.Status -eq "Connected"} | Select -ExpandProperty Desktop

        
        foreach ($Desktop in $FHVMachines)
            {

            Write-Host Rebooting $Desktop
            Reset-HVMachine $Desktop -Confirm:$false
            }

        }

    catch {
        $ErrorMessage = $_.Exception.Message
	    $FailedItem = $_.Exception.ItemName
		Write-Host $ErrorMessage
        }


    if ($ErrorMessage -ne $null) {
		Write-Host "Failed" -BackgroundColor Red
   	 	$date = get-date
    	Add-Content C:\Temp\VMware\HorizonRestart.log "`n$date : $ErrorMessage"
		}
		
		
	else {
		Write-Host "Success" -BackgroundColor Green
		$date = get-date
		Add-Content C:\Temp\VMware\HorizonRestart.log "`n$date : Success: $FHVMachines" 
		
		
		}

}

HZN-Reboot

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • vROps: Management Pack Troubleshooting
  • Windows AD {Active Directory} (PowerShell) samples
  • Migrate VMs Between vCentres Using Powershell or PowerCLI
  • Set VM Tools to Update Automatically on VM Reboot using powershell
  • Windows Administrator Must Have Powershell Commands

Recent Comments

  • JB on Script: How to get VM with Tag Assignment and export results to csv using PowerCLI or Powershell
  • DL on How to change VCSA root password and bypass BAD PASSWORD: it is based on a dictionary word for vCenter VCSA root account warning
  • 360coolp on How to change VCSA root password and bypass BAD PASSWORD: it is based on a dictionary word for vCenter VCSA root account warning
  • Yogesh on ESXi 8.x, 7.x, 6.x Service sfcbd-watchdog Not Running / Fails to Start – VirtuallyThatGuy
  • VirtuallyThatGuy on ESXi 8.x, 7.x, 6.x Service sfcbd-watchdog Not Running / Fails to Start – VirtuallyThatGuy

Archives

  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017

Categories

  • Automation
  • PowerCLI
  • VMware
  • Windows
© 2026 VirtuallyThatGuy | Powered by Superbs Personal Blog theme