Board logo

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

作者: beck1321    时间: 2011-9-6 14:33     标题: [已解决]批处理命令shutdown可否配置成注销所有非当前使用用户?

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

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


跪求大虾帮忙
作者: beck1321    时间: 2011-9-6 14:45

现在就是 在任务管理器里 注销其他用户 虽然也不是很麻烦 但是还是喜欢批处理
作者: lxzzr    时间: 2011-9-6 16:11

本帖最后由 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
复制代码

作者: beck1321    时间: 2011-9-6 17:25

回复 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是一直使用的用户
作者: beck1321    时间: 2011-9-6 17:27

我把 administrator 和 a 对调位置 还是把我正在使用的 用户(administrator)也注销了
作者: beck1321    时间: 2011-9-6 17:30

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

是不是 这一行 哪个a要改成 用户名?
作者: lxzzr    时间: 2011-9-6 18:03


call :sub Administrator

rem a
去掉
作者: beck1321    时间: 2011-9-7 08:25

回复 7# lxzzr


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

而且这批处理要把其他用户名都sub rem一下?有无命令可以包括所有其他用户即不需要一个一个定义的?
作者: lxzzr    时间: 2011-9-7 08:56

本帖最后由 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
复制代码

作者: Batcher    时间: 2018-7-31 14:35

  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. )
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2