![Windows 7 - 如何在关机时运行脚本,但在注销时不运行脚本](https://linux22.com/image/1357942/Windows%207%20-%20%E5%A6%82%E4%BD%95%E5%9C%A8%E5%85%B3%E6%9C%BA%E6%97%B6%E8%BF%90%E8%A1%8C%E8%84%9A%E6%9C%AC%EF%BC%8C%E4%BD%86%E5%9C%A8%E6%B3%A8%E9%94%80%E6%97%B6%E4%B8%8D%E8%BF%90%E8%A1%8C%E8%84%9A%E6%9C%AC.png)
我想知道是否有人知道如何配置域上的 Windows 7 x64 Enterprise 安装,以便在用户尝试关闭计算机时运行脚本 - 但我不希望在用户尝试注销时运行该脚本。
以下是有关我的情况的一些详细信息...
我在 5 台台式机上安装了驱动器加密软件,供我团队中的不同人员使用。这些台式机安装在几栋楼外的一个安全实验室中,很少有人可以访问。我团队中的人员通过 RDP 访问这些机器(8 核 2600K Intel Sandybridge,8GB RAM),以执行笔记本电脑不太适合的繁重任务。
我编写了一个关机脚本(.hta 文件),警告用户如果关闭计算机,则必须访问实验室并输入驱动器加密密码才能使计算机重新上线。该脚本有一个计时器,可倒计时 1 分钟,并允许用户取消关机命令。
当用户尝试关闭计算机时,脚本按预期工作,但我刚刚意识到脚本似乎在用户尝试注销时运行。有没有办法区分用户注销和用户关闭机器?如果可能的话,我只希望在机器关闭时运行脚本。如果用户注销,我不希望运行任何脚本。
如果可能的话,这似乎可以通过本地组策略进行管理。
如果您需要更多详细信息,请告诉我。
答案1
有两种方法可以实现这一点。如果您有 Active Directory 域,我建议您这样做,因为它最容易配置。您只需将这些特殊计算机添加到它们自己的 OU 并将 GPO 应用于 OU 即可。否则,您需要使用每台计算机上的本地策略管理器应用关机脚本:
通过组策略关闭脚本:
http://technet.microsoft.com/en-us/library/cc783802%28v=ws.10%29.aspx
通过本地策略关闭脚本:
http://technet.microsoft.com/en-us/library/cc770300.aspx
但是默认情况下,关机输出不可见。您需要对策略进行另一次更改以确保它们可见:
http://technet.microsoft.com/en-us/library/cc940430.aspx
我不确定 HTA 是否可以起作用,但如果您只是想确保在关机前显示一条消息,您可以轻松地将其转换为 .vbs 或 .bat 文件。
答案2
所以,我自己解决了这个问题 - 但这离不开大家的帮助 - 所以谢谢。
我刚刚注意到以下
有针对关机和注销脚本的 GPO
注销脚本位于用户配置/Windows 设置/脚本(登录和注销)中
关机脚本位于计算机配置/Windows 设置/脚本(启动/关机)
答案3
是的,在组策略中你可以将脚本放在
Computer Configuration\Windows Settings\Scripts\Shutdown
但是,如果机器注销后有人离开,并且再也看不到您的消息,请不要感到惊讶。我会像您的问题评论中留下的那样禁用关机。