Skip to content

VirtuallyThatGuy

Anything VMware , PowerCLI, PowerShell, Automation and some Windows

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

How To Reboot Cycle ESXi Server to remove stale datastore entry using powershell or powercli – VirtuallyThatGuy

Posted on July 10, 2022December 19, 2025 by VirtuallyThatGuy

This is a quick script to remove stale datastore entry on a host using a reboot cycle script which puts a host into maintenance mode, reboot, remove from maintenance mode and loop through the remaining hosts of the cluster. This is useful for weekend patches or any other maintenance work.

## Connect to the vCenters 

Start-Transcript -path C:\Temp\HostReboot-StuckNvME.txt
$startdate = (get-date) 
$filepath = "C:\Temp"
$ClusterName = "DEV-Cluster"
$filename = $ClusterName

### Stop SSH Post Reboot
  
Get-Cluster $ClusterName | Get-VMHost | ForEach {Stop-VMHostService -HostService ($_ |
Get-VMHostService | Where {$_.Key -eq “TSM-SSH”}) -Confirm:$false}

## Reboot Cycle of all hosts
cd C:\Temp\

(Get-Cluster $ClusterName | Get-VMHost).Name | Out-File $filepath\$filename".txt" 


##  Reboot Cycle Script block
Get-Content .\$filename".txt" | %{ 
    $Server = $_;
    Write-Host -ForegroundColor Green "$Server"
    Write-Host -ForegroundColor Yellow "`tServer is entering maintenance mode"
    Set-VMHost $Server -State maintenance -Evacuate | Out-Null
    Write-Host -ForegroundColor Yellow -NoNewline "`tServer Rebooting"
    Restart-VMHost $Server -Confirm:$false  | Out-Null

## Wait 1min to check connection state post reboot command  
    do {
        sleep 1
        $ServerState = (Get-VMHost $Server).ConnectionState
        Write-Host -ForegroundColor Yellow -NoNewline "."
    } while ($ServerState -ne "NotResponding")
    Write-Host -ForegroundColor Yellow -NoNewline "(Server is down)"

## Wait Another 1min to check connection state up post reboot command   

    do {
        sleep 1
        $ServerState = (Get-VMHost $Server).ConnectionState
        Write-Host -ForegroundColor Yellow -NoNewline "`."
    } while ($ServerState -ne "Maintenance")
    Write-Host -ForegroundColor Yellow "(Server Booted Up)"

## Exit Maintenance Mode and once complete move on to next host 
  
    Write-Host -ForegroundColor Yellow "`tExiting maintenance mode"
    Set-VMHost $Server -State Connected  | Out-Null
    Write-Host -ForegroundColor Yellow "`tReboot Cycle Done!"
    Write-Host ""
}

$enddate = (get-date)
$diff= New-TimeSpan -Start $startdate -End $enddate
Write-Host "It took" $diff " hours to complete the task" 

Stop-Transcript
 

Once completed the stale entry will be removed.

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