[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

俺懂一点点 shutdown -l 是注销当前用户
当我想这样比如 这个系统有 a 、b 、c三个用户使用

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


跪求大虾帮忙
1

评分人数

    • zqz0012005: 感谢给帖子标题标注[已解决]字样PB + 2
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

  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. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 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. pause
  4. :sub
  5. if not %1 == "" if not %1 == "%username%" (
  6. for /f "tokens=3 delims= " %%i in ('QUERY USER ^| Findstr /r /i "\>%~1"') do (
  7. echo.LogOff user: %%i
  8. LOGOFF %%i
  9. )
  10. )
  11. goto :eof
复制代码

TOP

回复 7# lxzzr


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

而且这批处理要把其他用户名都sub rem一下?有无命令可以包括所有其他用户即不需要一个一个定义的?
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP


call :sub Administrator

rem a
去掉

TOP

for /f "tokens=3 delims= " %%a in ('QUERY USER ^| Findstr /r /i "\<%1\>"') do LOGOFF %%a

是不是 这一行 哪个a要改成 用户名?
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP

我把 administrator 和 a 对调位置 还是把我正在使用的 用户(administrator)也注销了
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP

回复 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是一直使用的用户
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP

本帖最后由 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

评分人数

    • beck1321: 不管怎样还是要谢谢您技术 + 1

TOP

现在就是 在任务管理器里 注销其他用户 虽然也不是很麻烦 但是还是喜欢批处理
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP

返回列表