每当服务器重启/关闭时(无论是优雅还是可耻的重启),我都需要运行一个powershell脚本。 该脚本将以1分钟的间隔停止4个应用程序服务,然后最终重新启动系统。(这是业务要求,不要问为什么)
如何在启动重新启动或关闭时让服务器调用.ps1脚本。
我的测试结果: 我尝试创建一个测试脚本,该脚本将生成一个包含当前日期/时间的文本文件,并将其添加到事件日志6006触发器上的计划任务中(每当启动系统重新启动/关闭时都会创建该脚本)。 我检查了这个方框 - "以最高权限运行"但系统重新启动后,没有按原样生成文本文件,尽管它是在手动运行时生成的。
我们有更好的方法来实现这个吗?
(我的最终期望应该是这样的 - 在随机的一天,随机用户在每月补丁之后启动重启,当命令提示窗口在他面前打开时,消息如下:
Stopping service abc...
Stopped.
Waiting for 60 seconds.
Stopping service xyz...
Stopped
编辑:我已经成功地根据Kory和Alroc的建议将其添加到gpedit来调用.ps1文件,但是当启动计算机重启时脚本仅在后台运行。它不会打开常规cmd窗口来显示进度。 我在下面添加.ps1脚本,它会以10秒的间隔停止2个服务(选择用于测试目的),并且只有在手动运行时才会显示计时器。当由shutdown命令调用时它&# 39; ll仅在后台停止服务而不向用户显示进度。请帮助实现这一目标?
Write-Host "Shutdown script invoked"
stop-service W32Time -force -PassThru
for($i = 10 ; $i -gt 0 ; $i--)
{
Write-Progress -Activity "`n Waiting for" -status "`$i equals $i seconds"
sleep 1
}
stop-service wuauserv -force -PassThru
答案 0 :(得分:2)
您可以使用GPO为系统配置关机脚本。
您也可以通过Win32_ComputerShutdownEvent观察者来访问它。
答案 1 :(得分:1)
经过深入挖掘后,我终于找到了在系统关闭过程中如何使cmd窗口可见。
以下是执行上述期望的完整步骤:
以上步骤将在每次系统关闭时启用脚本调用。现在让脚本可见并显示进度:
在右侧窗格中显示的政策中,请在下方启用 属性: