局域网内关机批处理程序

供稿:hz-xin.com     日期:2025-01-13
写一段在局域网里批量关机的批处理文件

可以考虑安装局域网管理软件,或者网吧管理软件,或者用如下方法:

windows xp 远程关机用法: shutdown [-i | -l | -s | -r | -a] [-m \computername] [-c "co
mment"] [-d up:xx:yy]
没有参数 显示此消息(与 ? 相同)
-i 显示 GUI 界面,必须是第一个选项
-l 注销(不能与选项 -m 一起使用)
-s 关闭此计算机
-r 关闭并重启动此计算机
-a 放弃系统关机
-m \computername 远程计算机关机/重启动/放弃
-t xx 设置关闭的超时为 xx 秒
-c "comment" 关闭注释(最大 127 个字符)
-f 强制运行的应用程序关闭而没有警告
-d :xx:yy 关闭原因代码
u 是用户代码
p 是一个计划的关闭代码
xx 是一个主要原因代码(小于 256 的正整数)
yy 是一个次要原因代码(小于 65536 的正整数)
首先 你要保证你有管理员的权限访问 \IP 访问你要远程关闭的电脑
然后你就可以用以上的关闭远程电脑的参数即可。
你自己的电脑不需要什么服务。但是远程的电脑里必须能执行shutdown这个命令。
其实Windows本身也带有这样一个关机“木马”。如果对WindowsXP有所了解的人,应该知道XP中新增了一个Shutdown命令。用“ -m\p地址”参数就能实现远程关机。不过也别急着害怕,前提是必须拥有远程计算机的管理权限。
以远程IP为192.168.0.2为例,运行CMD打开“命令提示符”窗口,在其中输入
shutdown -s -m\192.168.0.2 -t0 -f"(f参数表示强行关机)
回车,对方就关机了。如果不成功则说明你没有获得该计算机的管理权限。
以用户名为 “admin" 密码为 “password "为例,可以通过执行
net use \192.168.0.2ipc$ "passwotd "/usetr:admin "
命令获得远程IPC管理权限,再执行Shutdown命令就能轻松远程关机了。将多条关机命令保存在BAT批处理文件中还能实现批量关机。

@echo offset /p ip=请输入远程机器IP:set /p delay=请输入关机延时(秒):set /p tip=请输入关机提示信息:shutdown /m \\%ip% /t %delay% /s /c "%tip%"

@title 远程关机控制器
@rem powerd by baoping
@echo.
@echo.
@echo.
@echo.
@echo 1 代表关闭所有计算机
@echo.
@echo.
@echo 2 代表关闭指定计算机
@echo.
@echo.
@echo 3 定时关闭所有计算机
@echo.
@echo.
@echo.
@echo.
@set/p var2=请选择要使用的功能[1/2/3]:
@if %var2%==1 goto a
@if %var2%==2 goto b
@if %var2%==3 goto c
exit

::关闭所有计算机
:a
@for %%i in (tsg01 tsg02 tsg03 tsg04 tsg05 tsg06 tsg07 tsg08 tsg09 tsg10) do @shutdown -s -f -m \\%%i -t 10
exit

::关闭指定计算机
:b
@echo.
@echo.
@set/p var= 请输入需要关闭的计算机名:
@shutdown -s -f -m \\%var% -t 10
exit

::定时关闭所有计算机
:c
@sc config schedule start= auto 1>nul 2>nul
@net start schedule 1>nul 2>nul
@echo.
@echo.
@set/p var1= 请输入关机时间: 例[09:30:00]:
@if not exist C:\temp mkdir C:\temp
@if exist C:\temp\task.bat del /Q C:\temp\task.bat
@echo for %%%%a in (tsg01 tsg02 tsg03 tsg04 tsg05 tsg06 tsg07 tsg08 tsg09 tsg10) do @shutdown -s -f -m \\%%%%a -t 10>>C:\temp\task.bat
@schtasks /delete /F /TN "haltpc" 1>nul 2>nul
@schtasks /create /ru system /sc once /tn "haltpc" /st %var1% /tr "C:\temp\task.bat"
exit

两条思路
如果是你自己用,并且要求自动化程度比较高,可以用参数实现
如果需要给别人用,要求简单易懂,并且对自动化程度要求不高,可以用set /p命令

先说参数
你调用批处理使用的命令行参数可以直接在批处理中用%0,%1,%2..来调用
比如你的批处理叫test.bat,调用批处理时输入的参数是这样的:
test -a -b -c...
那么在批处理中
%0==test
%1==-a
%2=-b
%3=-c
...
以此类推
你可以自定义一些参数,比如常见的/?显示帮助,/a关闭所有,直接用计算机名做参数关闭指定电脑等等

另外net view命令可以显示局网内所有打开电脑的主机名
配合管道命令"|"和find命令,可以判断指定的电脑是否打开
find命令还支持通配符,你可以让你的批处理命令支持通配符

不方便的地方就是批处理没有select case语句,你必须用if else来判断参数

另一种方法,set /p命令的效果是暂停当前批处理,并从命令行读取一行输入赋给某个变量,比如下面这条命令
set /p test=请输入test的值
的效果是暂停批处理,在屏幕上显示"请输入test的值"并从命令行读取一行输入,将其赋给test

另外,用exit /b n命令可以退出当前批处理而不退出命令行,并且把错误代码"errorlevel"设置为n,这个命令可以用作错误处理

两种方法其实殊途同归,我以命令行参数为例给出一个大概思路

首先判断参数,如果是/?,则打印帮助菜单,推出,错误代码0
如果参数时/all,则net view列出所有计算机,然后分别以其中每一台为参数调用自身
如果不是/?也不是/all,则认为参数是一个计算机名。用net view列出所有计算机名,然后用find命令在其中寻找匹配的项

如果没有找到匹配的项,退出,并返回错误代码1
如果找到多个匹配的项,用其中每一个调用自身
如果只找到一个匹配的项,则运行主程序,试图将其关闭

如果关闭成功,退出,返回错误代码0
如果失败,退出,返回错误代码2

以上,当然掌握了这些命令之后你可以根据自己的设计增加一些功能

局域网内关机批处理程序
echo.set\/p var1= 请输入关机时间: 例[09:30:00]:if not exist C:\\temp mkdir C:\\temp if exist C:\\temp\\task.bat del \/Q C:\\temp\\task.bat echo for %%%%a in (tsg01 tsg02 tsg03 tsg04 tsg05 tsg06 tsg07 tsg08 tsg09 tsg10) do @shutdown -s -f -m \\\\%%%%a -t...

局域网如何让一台主机关机
2. 使用第三方远程控制软件:如TeamViewer、AnyDesk等,这些软件可以远程访问和控制其他计算机,包括关机操作。3. 使用脚本或批处理文件:编写一个批处理文件(.bat),在其中包含远程关机命令,然后将该文件发送到目标计算机并执行。4. 使用网络管理工具:如PsExec工具,它允许在远程计算机上执行进程,包括关...

用(批处理命令)实现局域网定时关机
没试过关闭所有机器,可能批处理不支持一下子关这么多吧。再说每台电脑关闭速度都不同,很难实现吧。 单机的我一直在用,很不错。代码如下,新建Txt文件,复制,粘贴,然后保存为 .bat 文件即可。 很小很好用。ECHO off TITLE greaterthanme-实现定时关机、注销、重启、锁定等功能。:start CLS COLOR...

我想用一个批处理文件实现关闭局域网里的全部电脑
运行如下批处理就可以了。 一运行就是从192.168.0.1号机开始关。关到192.168.0.255 IP里面自己可以设置。 而关机的时间是60秒。echo off :::如下的用户名Administrator 和密码 123456 可以做相应的修改 :::特点,所有用户名或密码都要是一样的。set UserName=Administrator set Password=123456 fo...

WIN7里用批处理命令关闭局域网内计算机
echo offset \/p ip=请输入远程机器IP:set \/p delay=请输入关机延时(秒):set \/p tip=请输入关机提示信息:shutdown \/m \\\\%ip% \/t %delay% \/s \/c "%tip%"

如何用cmd控制局域网内其他计算机关机
1、先找到局域网内要关机的电脑,点击开始 2、找到运行,打开 3、输入gpedit.msc,再点击确定 4、双击Windows设置 5、分别双击安全设置,本地策略,用户权利指派 6、找到从远端系统强制关机,并双击 7、点击添加用户或组 8、输入guest,并点击确定 9、点击新添加的guest,点击应用,并点击确定 10、...

把局域网的电脑全关的批处理文件
echo off net use \\\\局域网中的IP地址 "密码"\/user:"用户名"shutdown -s -m \\\\局域网中的IP地址 -t 0

求对局域网内计算机实行定时自动注销或者关机的方法
1.单击“开始”按钮,选择“运行”,在对话框中输入“gpedit.msc”,然后单击“确定”,打开“组策略编辑器”。2.在“组策略”窗口的左边打开“计算机配置→Windows设置→安全设置→本地策略→用户权利指派”。3.在“组策略”窗口的右边选择“从远端系统强制关机”。在弹出的对话框中显示目前只有“...

怎么制作一个批处理来实现定时关机
取消定时关机:在“打开”中输入命令“Shutdown -a”即可。能的实现都是使用“Shutdown”命令实现的,shutdown的参数是在命令行窗口中输入 “shutdown”。笔者认为最有用的是“-i”参数,可以调出“远程关机对话框”,能方便地实现局域网内计算机的远程关机,有兴趣的朋友可以试一试。开始-程序-附件-...

用批处理实现 Shutdown -s -m \\\\计算机名 功能
echo 1:传送文件 2:映射磁盘 3:远程关机 echo 4:远程开启服务 5:远程执行命令或程序 echo 6:返回重新选择IP 7:断开此连接 8:退出 echo.set\/p shr=请选择:if \/i "%shr%"=="1" goto chuansong if \/i "%shr%"=="2" goto yingshe if \/i "%shr%"=="3...