Incorrect Machine Restart States

  • 18 March 2024
  • 6 replies


Hi there,

I’ve been experiencing an issue on certain clients where the Automox device section states “Reboot Required” even when a reboot has been administered, in some cases multiple times. I’ve tried manually restarting, restarting from the Automox client, CLI restarts, etc. The message is persistent. This seems to only apply to macOS devices. Any ideas?



6 replies

Userlevel 4

Hello Dane,

When Automox queues up an OS update for installation it creates a file called ‘needsReboot’ (/Library/Application Support/Automox/needsReboot).

It is possible to have an OS update listed in this file multiple times if the update command for the OS update was deployed to the endpoint multiple times. Each time an OS update is deployed to an endpoint, a line item containing the name of the update is placed in the needsReboot file. These clear one by one as restarts occurs. As an extreme example, if someone deployed the same OS update 4 times there would be 4 entries in the needsReboot file; requiring 4 reboots to clear them out.

A quick way to remedy this is to simply delete the needsReboot file (sudo rm /Library/Application \Support/Automox/needsReboot). Once the file is gone, rescan the device and it will show ‘ready’ once more.


Hi @MarkH-Automox , im having the same issue for windows devices. Ive tried resetting windows update services. Ran system file checker in hope of fixing issue but no luck so far. we have got around 60% device that need reboots now but ive tried couple of those to do manual and force restart but i dont think automox agent is picking those up. i also noticed that it also doesnt pick shutdown for any devices.

Any advise will be highly appreciated.



Userlevel 4


The first situation to watch out for is patch policies with Automatic Restart disabled. This will install updates and the endpoint will just be in Restart Required indefinitely. Windows is a more native check that we do (unlike MacOS) for Restarts, where Automox simply scans certain registry values to determine whether or not a device requires a restart, so it isn’t practical to have a ‘clear restart’ Worklet/script on Windows like it can be with MacOS.


However, I have a Worklet which does return why a Windows endpoint requires a restart, and from there you can decide if a Restart should take place manually or if you want to enable Automatic Restart in the patch policies. (originally taken from


<#Checks in the following places
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'
'HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootInProgress'
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'
'HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackagesPending'
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\PostRebootReporting'
'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager' -Value 'PendingFileRenameOperations'
'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager' -Value 'PendingFileRenameOperations2'
'HKLM:\SOFTWARE\Microsoft\Updates' |test-path $_ -PathType Container
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce' -Value 'DVDRebootSignal'
'HKLM:\SOFTWARE\Microsoft\ServerManager\CurrentRebootAttemps' }
'HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon' -Value 'JoinDomain'
'HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon' -Value 'AvoidSpnSet'
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\Pending' | Where-Object {

# Check if the PendingReboot module is loaded in the current session
if (-not (Get-Module -Name PendingReboot -ListAvailable -ErrorAction SilentlyContinue)) {
# If the module is not loaded, attempt to import it
Write-Host "PendingReboot module is not loaded. Attempting to import the module..."
Import-Module PendingReboot -ErrorAction SilentlyContinue

# Check if the PendingReboot module is loaded successfully
if (-not (Get-Module -Name PendingReboot -ListAvailable -ErrorAction SilentlyContinue)) {
# If the module is not loaded successfully, install NuGetClientBinaries, NuGet module, and PendingReboot module
Write-Host "PendingReboot module is not installed. Installing dependencies and the module silently from the system context..."

# Install NuGetClientBinaries
Install-PackageProvider -Name NuGet -Force -Scope AllUsers -Confirm:$false

# Install NuGet module
Install-Module -Name NuGet -Force -Scope AllUsers -Repository PSGallery -ErrorAction Stop

# Install PendingReboot module
Install-Module -Name PendingReboot -Force -Scope AllUsers -Repository PSGallery -ErrorAction Stop

Write-Host "PendingReboot module and its dependencies have been installed successfully."
else {
# If the module is already loaded, display a message
Write-Host "PendingReboot module is already installed and loaded."

Test-PendingReboot -Detailed



Hi @MarkH-Automox, thanks for the info. i already tried this script on couple devices and not sure for some reason it showing device reboot false when on Automox dashboard it stuck at pending reboot state not sure what’s causing it at this point..  you could even check the screenshot below 


Userlevel 4

This would indicate to me the Automox agent isn’t scanning to update the console information. If you email with a few device names we can check to see on the backend what the status of the scan(s) is.

Could be something else, but that would be my next step!


Thanks @MarkH-Automox, i will do that that now.