Board logo

标题: [文本处理] BAT批处理如何终止空闲时间超过1个小时的用户进程?? [打印本页]

作者: ditto    时间: 2014-1-7 17:03     标题: BAT批处理如何终止空闲时间超过1个小时的用户进程??

C:\>query user 能看到当前用户的空闲时间(第5列)
用户名                会话名          ID  状态    空闲时间   登录时间
   user1              rdp-tcp#4           4  运行中         26    2014-1-7 8:19
    user2              rdp-tcp#29         23  运行中        1:23 2014-1-7 8:55
    user3              rdp-tcp#30         24  运行中          .    2014-1-7 8:56
    user4              rdp-tcp#32         26  运行中          7  2014-1-7 8:57

其中user2的空闲时间 1:23 超过1小时,
23为第3列 ID,为用户user2的进程号,可以用命令reset session 23 终止用户user2 的进程。

-------------------------
怎么用bat处理实现以上处理,对超1小时空闲的进程终止掉?定期运行检查,对“空闲时间超1小时的(第5列含:号)”的id终止掉?
作者: apang    时间: 2014-1-7 21:06

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('query user^|findstr [1-9][0-9]*:[0-9][0-9].') do (
  3.     for %%b in (%%a) do (
  4.         if "%%b"=="运行中" echo,reset session !id!
  5.         set "id=%%b"
  6.     )
  7. )
  8. pause
复制代码

作者: ditto    时间: 2014-1-8 09:10


强大~
作者: DAIC    时间: 2014-1-8 09:28

回复 2# apang


我也来一个
  1. @echo off
  2. for /f "tokens=3 delims= " %%a in ('query user ^| findstr :.*:') do (
  3.     reset session %%a
  4. )
复制代码

作者: apang    时间: 2014-1-8 11:27

回复 4# DAIC


    其实用户名有可能包含空格的,楼主所说的第5列,个人认为应该是一个未知数
作者: DAIC    时间: 2014-1-8 11:30

回复 5# apang


    query user 的结果里面显示的应该NT账号的名字吧,应该没有空格。等楼主出来说明一下。




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