geelaw
2017-12-26 22:12:30 +08:00
提醒:如果你把关机的代码放在启动项里面,通常需要登录用户才能关机,这样是不自动化的。
如果是 Windows,有两种方法:
1. 远程 PowerShell,设想要被重启的电脑是 Computer1 从远程计算机上运行如下命令:
$cred = Get-Credential
1...1000 | ForEach-Object { Restart-Computer -ComputerName Computer1 -Credential $cred -Wait }
等待命令完成即可。在第一行之后输入另一个电脑的管理员用户名和密码(用 Computer1\AdminAccountName 或者 DomainName\AdminAccountName )
2. 本地,在 C:\ 打开 PowerShell 并输入:
1000 | Set-Content countdown-shutdown -Encoding UTF8
然后编辑 countdown-shutdown 这个文件的 ACL,确保只有管理员和 SYSTEM 能完全控制之。
然后编辑如下的 PowerShell 脚本并保存到 C:\Countdown-Shutdown.ps1
$ErrorActionPreference = 'Stop'
Try
{
$RemainingCount = (Get-Content 'C:\countdown-shutdown' -Encoding UTF8 -Raw).Trim()
$RemainingCount = [uint32]::Parse($RemainingCount)
If ($RemainingCount -gt 0)
{
$RemainingCount = $RemainingCount - 1
$RemainingCount | Set-Content 'C:\countdown-shutdown' -Encoding UTF8
Restart-Computer
}
}
Catch
{
}
Finally
{
}
并编辑它的 ACL 确保只有管理员和 SYSTEM 能完全控制之。
然后打开 gpedit.msc ,在 Local Computer Policy - Computer Configuration - Windows Settings - Scripts (Startup/Shutdown) - Startup 里添加 PowerShell 脚本 C:\Countdown-Shutdown.ps1
然后重启电脑,此后电脑会连续重启 1000 次。
**我刚刚已经尝试了连续重启 4 次。但我不为使用这个代码造成的任何直接或间接的后果负责。**