Windows XP的远程关机实现

14年前

Windows XP中,新增了一条命令行工具“shutdown”,其作用是“关闭或重新启动本地或远程计算机”。利用它,我们不但可以注销用户,关闭或重新启动计算机,还可以实现定时关机、远程关机。

 

Windows XP中,新增了一条命令行工具“shutdown”,其作用是“关闭或重新启动本地或远程计算机”。利用它,我们不但可以注销用户,关闭或重新启动计算机,还可以实现定时关机、远程关机。

 

  该命令的语法格式如下:

 

  shutdown [-i  -l -s  -r  -a] [-f] [-m [\\ComputerName]] [-t xx] [-c "message"] [-d[u][p]:xx:yy] 其中,各参数的含义为:

  -i 显示图形界面的对话框。

  -l 注销当前用户,这是默认设置。-m ComputerName 优先。

  -s 关闭计算机。

  -r 关闭之后重新启动。

  -a 中止关闭。除了 -l ComputerName 外,系统将忽略其它参数。在超时期间,您只可以使用 -a

  -f 强制运行要关闭的应用程序。

  -m [\\ComputerName] 指定要关闭的计算机。

  -t xx 将用于系统关闭的定时器设置为 xx 秒。默认值是 20 秒。

  -c "message" 指定将在“系统关闭”窗口中的“消息”区域显示的消息。最多可以使用 127 个字符。引号中必须包含消息。

 

  -d [u][p]:xx:yy 列出系统关闭的原因代码。

 

  首先,我们来看一下该命令的一些基本用法:

  1、注销当前用户 shutdown - l

  该命令只能注销本机用户,对远程计算机不适用。

  2、关闭本地计算机 shutdown - s

  3、重启本地计算机 shutdown - r

  4、定时关机 shutdown - s -t 30

  指定在30秒之后自动关闭计算机。

  5、中止计算机的关闭

  有时我们设定了计算机定时关机后,如果出于某种原因又想取消这次关机操作,就可以用 shutdown - a 来中止。如:

  shutdown -s t 300 设定计算机在5分钟后关闭。

  Shutdown a 取消上述关机操作。

  以上是shutdown命令在本机中的一些基本应用。前面我们已经介绍过,该命令除了关闭、重启本地计算机外,更重要的是它还能对远程计算机进行操作,但是如何才能实现呢?

 

  在该命令的格式中,有一个参数[-m [\\ComputerName],用它可以指定将要关闭或重启的计算机名称,省略的话则默认为对本机操作。于是,我用以下命令试了一下:

  shutdown s m \\netproxy -t 30

  (30秒内关闭计算机名为netproxy的机器;注:netproxy为局域网内一台同样装有Windows XP的电脑)

  但该命令执行后,计算机netproxy一点反应都没有,我的屏幕上却返回这样一句话:Access is denied (拒绝访问)。

  为什么会出现这种情况呢?我想了半天,四处查找有关的资料,终于发现,在Windows XP默认的安全策略中,只有管理员组的用户才有权从远端关闭计算机,而一般情况下我们从局域网内的其他电脑来访问该计算机时,则只有guest用户权限,所以当我们执行上述命令时,便会出现“拒绝访问”的情况。

  找到问题的根源之后,解决的办法也很简单,只要在客户计算机(能够被远程关闭的计算机,如上述的netproxy)中赋予guest用户远程关机的权限即可。这可利用Windows XP的“组策略”或“管理工具”中的“本地安全策略”来实现。下面以“组策略”为例进行介绍:

  1、单击“开始”按钮,选择“运行”,在对话框中输入“gpedit.msc”,然后单击“确定”,打开“组策略编辑器”。

  2、在“组策略”窗口的左窗格中打开“计算机配置”—“Windows 设置”—“安全设置”—“本地策略”—“用户权利指派”。(如图)

  3、在“组策略”窗口的右窗格中选择“Force shutdown from a remote system (从远端系统强制关机)”,双击。

  4、在弹出的对话框中显示目前只有“Administrators”组的成员才有权从远程关机;单击对话框下方的“添加用户或组”按钮,然后在新弹出的对话框中输入“guest”,再单击“确定”。

  5、这时在“从远端系统强制关机”的属性中便添加了一个“guest”用户,单击“确定”即可。

  6、关闭“组策略”窗中。

  通过上述操作后,我们便给计算机netproxyguest用户授予了远程关机的权限。以后,我们要远程关闭计算机netproxy,只要在网络中其他装有Windows XP 的电脑中输入以下命令即可:

  shutdown -s m \\netproxy -t 30 (其他参数用法同上)

  这时,在netproxy计算机的屏幕上将显示一个“系统关机”的对话框,提示“系统即将关机。请保存所有正在运行的工作,然后注销。未保存的改动将会丢失。关机是由netproxy\guest初始的。”在对话框下方还有一个计时器,显示离关机还有多少时间。在等待关机的时间里,用户还可以执行其他的任务,如关闭程序、打开文件等,但无法关闭该对话框,除非你用shutdown a命令来中止关机任务。

最后,有一点要说明的是,shutdown命令不但可以远程关闭装有Windows XP系统的计算机,它还可以远程关闭装有Windows 2000系统的计算机(对于Win9X嘛,好像不适用)。有关Windows 2000客户计算机上的一些设置,操作方法同上,这里就不再多说了。 另外shutdown作为一个外部命令(其对应文件为\Windows\system32文件夹下的shutdown.exe),我们还可将它复制到Windows 2000的机器上,这样,在装有Windows 2000系统的机器之间便也能相互实现远程关机。