本文出自《网管员世界》2003年第4期“网管技巧”栏目
Windows XP操作系统中带有一个名为shutdown的功能强大的关机工具。利用它不但可以完成Windows图形操作界面下可以完成的功能:注销用户、关闭或重启计算机,更重要的是可以用它来定时关机、远程关机。这可是在Windows图形操作界面下完成不了的功能!如果某天您的计算机在下载一个软件,还需要30分钟才能完成,但您有事情要马上出去,这时您就需要用定时关机的功能了;同样,您管理了一个小型机房,每天关机的时候得一台一台地关,很麻烦!呵呵,用shutdown就可以帮您解决,而且不用在每台计算机上安装客户端程序!
shutdown程序是Windows XP操作系统安装时带来的,具体位置在Winnt/system32/shutdown.exe,在Windows 9x/2000中是没有这个程序的,但由于Windows 2000和XP的内核基本一致,所以我们可以把这个shutdown.exe 程序拷贝到Windows 2000的Winnt/system32/文件夹下面,就可以照常使用,但Windows 9x不行。
shutdown的具体的格式为:
shutdown [-i | -l | -s | -r | -a] [-f] [-m //computername] [-t xx] [-c “comment”] [-d up:xx:yy]
具体参数解释如下:
-i:显示 GUI 界面,必须是第一个选项。
-l:注销(不能与选项-m一起使用)。
-s:关闭此计算机。
-r:关闭并重启动此计算机。
-a:放弃系统关机。
-m //computername:远程计算机关机/重启动/放弃。
-t xx:设置关闭的超时为 xx 秒。
-c “comment”: 关闭注释(最大127 个字符)。
-f:强制运行的应用程序关闭而没有警告。
-d [u][p]:xx:yy:关闭原因代码(此项一般不会用到)。
定时关闭计算机
1.我们已经了解了shutdown命令的用法,如果现在我们想让本地计算机在60分钟后关闭,那么我们单击“开始”菜单,选择“运行”,然后在输入框中输入:
shutdown -s -t 3600 (见图1)
图1
运行后系统会马上弹出一个“系统关机窗口”:“系统即将关机,请您保存好正在运行的工作……”,还有一个关机倒计时器(见图2),这个窗口是关不掉的,到达关机时,系统就会强行关机。
图2
2.如果在这段时间内您想取消这次定时关机,那您可以在“运行”框中输入:
shutdown -a
这样这次定时关机就被取消了,“系统关机窗口”也会马上消失。很简单吧!
关闭远程计算机
与定时关机相比较,关闭远程计算机稍微要复杂点。首先要注意:shutdown只能远程关闭Windows 2000/XP系统的计算机,所以要被远程关闭的计算机只能是Windows XP或是Windows 2000系统的计算机,Windows 9x系统的计算机是不行的。
由于Windows 2000/XP系统的默认组策略中设定只有Administrator组的成员才有权从远程关机,所以我们要改变这个设置才行,不然每次远程关机都要进行身份认证多麻烦!具体步骤如下:
(1)单击“开始”菜单,选择“运行”,然后在输入框中输入“gpedit.msc”,然后单击“确定”,这样就打开了“组策略编辑器”。
(2)在“组策略编辑器”的左窗口中打开“计算机配置→Windows设置→安全设置→本地策略→用户权利指派”(见图3)。
图3
(3)在“组策略编辑器”的右窗口中选择“从远端系统强制关机”,双击,弹出的对话框中显示只有“administrator组的成员”才有权从远程关机,单击对话框下方的“添加用户或组”按纽,然后在新弹出的对话框中输入:“guest”(见图4),再单击“确定”,这时在“从远端系统强制关机”的属性框中便添加了一个“guest”用户(见图5),单击“确定”完成设置,这样这台计算机就授予了guest组用户“从远程关闭计算机”的权限了。
图4
图5
(4)按同样的方法设置好所有要远程关闭的计算机。
3.设置好远程关机权限后就可以真正体验远程关闭计算机的便利了。假如局域网里有两台主机A和B,我们要从A机上关闭B机,只要单击A机的“开始”菜单,选择“运行”,然后在输入框中输入(不换行):
shutdown -f -m
//(B机的名字或IP地址)
然后单击“确定”就可以了,B机就会弹出“系统关机窗口”后关机(系统默认等待20秒后关机),如果要使远程主机也在60分钟后关机,只要加上定时关机的参数就行了(不换行):
shutdown -f -m
//(B机的名字或IP地址)-t 3600
其他shutdown命令的各个功能也都可以在远程主机上实现的,大家有兴趣可以自己试试。
批量关闭远程计算机
文章到此,可能有朋友会问:“如果我想关闭的不止一台远程计算机,而是一批远程计算机,总不能让我每关一台都输一次命令吧,有什么好方法吗?”
有办法,而且很简单!前面我们介绍了shutdown 有个i参数,必须是第一个选项,是用来显示 GUI 界面,我们就可以利用这个 GUI 界面来批量关闭远程计算机。在“运行”栏中输入:
shutdown -i
系统会弹出一个“远程关机对话框”的图形界面,(见图6),单击右上方的“添加”按纽,弹出添加计算机的输入框,在其中输入要关闭的计算机名字(见图7),按“确定”后这台计算机就列入要关闭的计算机列表中了,依次加入所有要关闭的计算机,然后在“远程关机对话框”中的“您想让这些计算机做什么”里选择“关机”,再在“警告用户此操作”的“显示警告时间”里添上您想要延迟的时间,最后在最下面的“注释”框里添入关机理由(可以随便添),按“确定”,这批计算机就被关闭了。是不是很简单!不过这种方法有个缺点,就是关机以后系统不会保存这次关机的计算机列表,也就说第二次您再想关闭这批计算机时又要重新添加一遍所有的计算机,很不方便。如果您经常要关闭一大批计算机,建议还是写个.bat文件,内容如下:
shutdown -f -m //server1
shutdown -f -m //server2
shutdown -f -m //server3
……
图6
图7
具体的可以根据您的需要更改,这样每次关机就只要运行一下这个.bat文件就行了。当然您要是有兴趣可以以shutdown为基础编写一个具有详细的关机选项的小程序,那就更方便了。