Last active
March 19, 2024 05:38
-
-
Save RaRaRatchet/986608dfa9c6a8d77f2ec9a2be6033c9 to your computer and use it in GitHub Desktop.
[Get-PendingReboot] #TS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # https://www.reddit.com/r/SCCM/comments/bj7br8/sccm_reboot_decoded_how_to_make_a_pc_cancel_start/ | |
| #CANCEL a pending reboot | |
| Remove-Item -path 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData'; | |
| Remove-Item -path 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Updates Management\Handler\UpdatesRebootStatus\*'; | |
| Remove-ItemProperty -name * -path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'; | |
| #on PS2.0, "Remove-ItemProperty" doesn't work, so use this. | |
| #Remove-Item -path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'; | |
| shutdown -a | |
| Restart-Service ccmexec -force | |
| #change mandatory reboot to non-mandatory reboot | |
| Set-Itemproperty -path 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -name 'RebootBy' -value 0 | |
| Restart-Service ccmexec -force | |
| #Reset SCCM reboot countdown timer. | |
| $time = [DateTimeOffset]::Now.ToUnixTimeSeconds() | |
| Set-Itemproperty -path 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -name 'RebootBy' -value $time | |
| Restart-Service ccmexec -force | |
| $time = [DateTimeOffset]::Now.ToUnixTimeSeconds() | |
| Set-Itemproperty -path 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -name 'RebootBy' -value $time | |
| New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'RebootBy' -Value $time -PropertyType QWord -Force -ea SilentlyContinue; | |
| New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'RebootValueInUTC' -Value 1 -PropertyType DWord -Force -ea SilentlyContinue; | |
| New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'NotifyUI' -Value 1 -PropertyType DWord -Force -ea SilentlyContinue; | |
| New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'HardReboot' -Value 0 -PropertyType DWord -Force -ea SilentlyContinue; | |
| New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'OverrideRebootWindowTime' -Value 0 -PropertyType QWord -Force -ea SilentlyContinue; | |
| New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'OverrideRebootWindow' -Value 0 -PropertyType DWord -Force -ea SilentlyContinue; | |
| New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'PreferredRebootWindowTypes' -Value @("4") -PropertyType MultiString -Force -ea SilentlyContinue; | |
| New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'GraceSeconds' -Value 0 -PropertyType DWord -Force -ea SilentlyContinue; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| $RebootPending = $false | |
| #Check for 'Reboot Required' registry key | |
| if(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" -ea SilentlyContinue) { | |
| $RebootPending = $true | |
| } | |
| #Check for 'Reboot Required' registry key | |
| if(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" -ea SilentlyContinue) { | |
| $RebootPending = $true | |
| } | |
| #Check for recent installation requiring reboot | |
| if(Test-Path "HKLM:\SOFTWARE\Microsoft\Updates\UpdateExeVolatile" -ea SilentlyContinue) { | |
| $RebootPending = $true | |
| } | |
| #Check for System Center Configuration Manager | |
| if(Test-Path "HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData" -ea SilentlyContinue) { | |
| $RebootPending = $true | |
| } | |
| #Check for PendingFileRenameOperations | |
| if(Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name PendingFileRenameOperations -EA SilentlyContinue) { | |
| $RebootPending = $true | |
| } | |
| $RebootPending | |
| #CANCEL a pending reboot | |
| Remove-Item -path 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData'; | |
| Remove-Item -path 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Updates Management\Handler\UpdatesRebootStatus\*'; | |
| Remove-ItemProperty -name * -path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'; | |
| #on PS2.0, "Remove-ItemProperty" doesn't work, so use this. | |
| #Remove-Item -path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'; | |
| shutdown -a | |
| Restart-Service ccmexec -force |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment