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

[文本处理] 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终止掉?

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

TOP


强大~

TOP

回复 2# apang


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

TOP

回复 4# DAIC


    其实用户名有可能包含空格的,楼主所说的第5列,个人认为应该是一个未知数

TOP

回复 5# apang


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

TOP

返回列表