![防止 Windows 7 用户取消关机(disable shutdown -a)](https://linux22.com/image/1419641/%E9%98%B2%E6%AD%A2%20Windows%207%20%E7%94%A8%E6%88%B7%E5%8F%96%E6%B6%88%E5%85%B3%E6%9C%BA%EF%BC%88disable%20shutdown%20-a%EF%BC%89.png)
我从 Windows 7 管理员帐户设置了一个具有最大权限的计划任务,该任务执行一个 .cmd 文件,该文件执行
shutdown -s -f -t 120
如果用户恰好已登录并且已超过允许的时间。
用户只有用户权限,但他仍然可以通过在运行框中输入来取消我的管理员强制关机
shutdown -a.
如何防止用户取消和管理员发出关机命令?UAC 已启用。谢谢。
我的最终.cmd 是这样的:
@echo off for /f "delims=" %%? in ('tasklist /v^| findstr /B /C:"explorer.exe"') do call :USERis %%? :USERis echo/%*|find "username">nul 2>&1&&(set "liet=username") echo/%*|find "Administrator">nul 2>&1&&(set "liet=Administrator") echo/%liet% if %liet%==username ( msg /server:localhost * /time:120 "Computer is shutting down in 2 minutes!" timeout /T 120 shutdown -s -f -t 0 -c "Computer is shutting down!" ) else ( echo Admin logged in! echo Do nothing exit ) exit
它计划在 8 小时内每 3 分钟重复运行一次,在此期间用户不得使用 PC。因此,即使重新启动 PC,如果用户已登录,它仍会关闭。Bios 有设置密码,无法从用户配置文件中更改时间和日期。没有检查 BIOS 启动菜单是否有效(启动 Linux 并更改时间)。不过用户对 Linux 并不熟悉。
答案1
这个问题有两个不同的答案。一个直接回答你的问题,另一个告诉你应该如何设置。
您的问题的解决方案
您无法阻止用户使用计时器中止关机,但如果您将关机更改为 -t 0(立即关机),则无法使用关机 -a 命令阻止。因此,您可以启动 2 分钟后运行的第二个任务,该任务将执行关机 -s -f -t 0 来关闭电脑。用户将首先看到一个 2 分钟的计时器,即使他们中止它,系统也会在 2 分钟后关闭。
你应该如何解决这个问题
Windows 提供带有登录时长的家长控制。设置此功能后,当登录时间已到时,用户将被注销。与您的解决方案不同,用户不能简单地打开电脑并/或重新登录。如果他们尝试这样做,他们会收到一条消息:登录时长已到。请等待,直到您被允许再次登录。
要进行设置,请执行以下操作:
- 转至
start
->Control Panel
- 如果尚未完成,请在右上角设置
View by
为。Category
- 点击
Set up parental controls for any user
。 - 单击要限制的用户。
- 将家长控制设置为
(x) On, enforce current settings
- 点击
Time limits
- 绘制/填充用户不允许使用计算机的方块。您可以使用从左上角的拖放操作来填充一大块方块。
- 单击Ok即可将其设为最终版本。
就是这样。用户将在注销前收到警告。