Add Add schedule_reboot.ps1
This commit is contained in:
		
							parent
							
								
									9e5e1e9ebd
								
							
						
					
					
						commit
						de83011abb
					
				
							
								
								
									
										35
									
								
								Add schedule_reboot.ps1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								Add schedule_reboot.ps1
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | ||||
| # Define the reboot time | ||||
| $rebootTime = "21:00" | ||||
| 
 | ||||
| # Get the current date and time | ||||
| $currentDate = Get-Date | ||||
| 
 | ||||
| # Parse the reboot time into a DateTime object for today | ||||
| $rebootDateTime = [datetime]::ParseExact("$($currentDate.ToString('yyyy-MM-dd')) $rebootTime", "yyyy-MM-dd HH:mm", $null) | ||||
| 
 | ||||
| # Check if the reboot time is in the past for today; if so, schedule it for tomorrow | ||||
| if ($rebootDateTime -lt $currentDate) { | ||||
|     $rebootDateTime = $rebootDateTime.AddDays(1) | ||||
| } | ||||
| 
 | ||||
| # Format the DateTime object for the task scheduler | ||||
| $taskTime = $rebootDateTime.ToString("HH:mm") | ||||
| 
 | ||||
| # Create a scheduled task action for a forced reboot | ||||
| $taskName = "ForcedReboot" | ||||
| $action = New-ScheduledTaskAction -Execute "shutdown.exe" -Argument "/r /f /t 0" | ||||
| 
 | ||||
| # Create a trigger for the specified time | ||||
| $trigger = New-ScheduledTaskTrigger -Once -At $rebootDateTime | ||||
| 
 | ||||
| # Configure settings to allow the task to run when no user is logged in | ||||
| $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable ` | ||||
|     -RunOnlyIfIdle:$false -WakeToRun | ||||
| 
 | ||||
| # Set the task to run with the highest privileges and even when no user is logged in | ||||
| $principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest | ||||
| 
 | ||||
| # Register the task | ||||
| Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -Settings $settings -Principal $principal -Force | ||||
| 
 | ||||
| Write-Host "Scheduled reboot at $rebootDateTime, even if no user is logged in." | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user