找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 32945|回复: 9

[系统相关] [已解决]批处理命令shutdown可否配置成注销所有非当前使用用户?

[复制链接]
发表于 2011-9-6 14:33:54 | 显示全部楼层 |阅读模式
俺懂一点点 shutdown -l 是注销当前用户
当我想这样比如 这个系统有 a 、b 、c三个用户使用

我作为a用户进入系统后 我运行某个批处理 ,产生自动注销其他用户的效果(不管另外开了几个用户、不管是b也在还是c也在),除我自己正在使用的用户,其他都注销。


跪求大虾帮忙

评分

参与人数 1PB +2 收起 理由
zqz0012005 + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2011-9-6 14:45:12 | 显示全部楼层
现在就是 在任务管理器里 注销其他用户 虽然也不是很麻烦 但是还是喜欢批处理
发表于 2011-9-6 16:11:18 | 显示全部楼层
本帖最后由 lxzzr 于 2011-9-6 16:13 编辑

不用跪求

  1. @echo off
  2. call :sub a
  3. rem 用户a

  4. call :sub b
  5. rem 用户b

  6. call :sub c
  7. rem 用户c

  8. pause

  9. :sub
  10. for /f "tokens=3 delims= " %%a in ('QUERY USER ^| Findstr /r /i "\<%1\>"') do LOGOFF %%a
  11. goto :eof
复制代码

评分

参与人数 1技术 +1 收起 理由
beck1321 + 1 不管怎样还是要谢谢您

查看全部评分

 楼主| 发表于 2011-9-6 17:25:30 | 显示全部楼层
回复 3# lxzzr


    确实把别的用户先注销了,但是不管我怎么搞都会把自己给注销了、、、
  1. @echo off
  2. call :sub Administrator
  3. rem a

  4. call :sub 123
  5. rem b

  6. call :sub 456
  7. rem c

  8. pause

  9. :sub
  10. for /f "tokens=3 delims= " %%a in ('QUERY USER ^| Findstr /r /i "\<%1\>"') do LOGOFF %%a
  11. goto :eof
复制代码
不晓得我搞错哪里了
sub rem 我不懂额

123、456是我创建的用户 Administrator是一直使用的用户
 楼主| 发表于 2011-9-6 17:27:23 | 显示全部楼层
我把 administrator 和 a 对调位置 还是把我正在使用的 用户(administrator)也注销了
 楼主| 发表于 2011-9-6 17:30:54 | 显示全部楼层
for /f "tokens=3 delims= " %%a in ('QUERY USER ^| Findstr /r /i "\<%1\>"') do LOGOFF %%a

是不是 这一行 哪个a要改成 用户名?
发表于 2011-9-6 18:03:30 | 显示全部楼层

call :sub Administrator

rem a
去掉
 楼主| 发表于 2011-9-7 08:25:27 | 显示全部楼层
回复 7# lxzzr


    斑竹~ 555 去掉后还是把自己也给注销了

而且这批处理要把其他用户名都sub rem一下?有无命令可以包括所有其他用户即不需要一个一个定义的?
发表于 2011-9-7 08:56:06 | 显示全部楼层
本帖最后由 lxzzr 于 2011-9-7 09:24 编辑

rem 是注视语句,可以无视的。那代码的意思是你要注销那个用户就“call :sub 用户”。
还是把自己注销了,你当期的用户是哪个,CMD---ECHO %USERNAME%看下

  1. @echo off
  2. for /f "skip=1 delims= " %%a in ('wmic useraccount get name') do call :sub "%%a"
  3.        
  4. pause
  5. :sub
  6. if not %1 == "" if not %1 == "%username%" (
  7.         for /f "tokens=3 delims= " %%i in ('QUERY USER ^| Findstr /r /i "\>%~1"') do (
  8.                 echo.LogOff user: %%i
  9.                 LOGOFF %%i
  10.         )
  11. )
  12. goto :eof
复制代码
发表于 2018-7-31 14:35:51 | 显示全部楼层
  1. @echo off
  2. chcp 437 > nul
  3. REM Log off Disconnected sessions
  4. for /f "tokens=1,2" %%i in ('query user ^| findstr /c:"  Disc  "') do (
  5.     echo logoff %%i
  6.     logoff %%j
  7. )
  8. REM Log off Active sessions except for current session
  9. for /f "skip=1 tokens=1,3" %%i in ('query user ^| findstr /v /c:"  Disc  "') do (
  10.     if /i "%%i" neq ">%username%" (
  11.         echo logoff %%i
  12.         logoff %%j
  13.     )
  14. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 15:36 , Processed in 0.018629 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表