Windows does not offer/provide a sanctioned, singular way to determine with certainty if a computer is in need of a reboot. However, Windows does mark in several places in the OS values that can be used to infer that a reboot is required to complete certain operations.
When using one of the ‘Get pending reboot status‘ actions in BatchPatch, a check is initiated that looks in the following locations of the target computer(s) to determine if reboot is needed:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update |
If a subkey contains “RebootRequired” BatchPatch returns TRUE
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing |
If a subkey contains “RebootPending” BatchPatch returns TRUE
HKLM\SOFTWARE\Microsoft\Updates |
If the UpdateExeVolatile value exists and is greater than 0, BatchPatch returns TRUE
CCM_ClientUtilities.DetermineIfRebootPending method |
If the host has SCCM installed and this method returns TRUE, BatchPatch returns TRUE
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager |
If the PendingFileRenameOperations value contains any filepaths, BatchPatch displays them, but this will not cause BatchPatch to return TRUE even though the rename operations will occur upon reboot.
All that said, when you use ‘Get pending reboot status’ and it returns TRUE it doesn’t mean that you absolutely must reboot the computer. It means that Windows has operations that are pending reboot to be completed. It does not necessarily mean that the computer is in an unstable or problematic state.
If you use one of the BatchPatch methods to install Windows updates, but you do not let BatchPatch also ‘reboot if required‘ then you could leave your computers in an unstable/unprotected/vulnerable state since it is the case that some updates will not be “live” until the reboot occurs. However, if you are rebooting the computers after Windows updates are installed, but then at a later date ‘Get pending reboot status‘ reports TRUE, it does not necessarily mean that the sky is falling and that you must drop everything and reboot immediately, though it may warrant further investigation to see why BatchPatch is reporting TRUE so that you can determine if you want to reboot the computers or not.