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

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

[复制链接]
发表于 2014-1-7 17:03:34 | 显示全部楼层 |阅读模式
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终止掉?
发表于 2014-1-7 21:06:31 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2014-1-8 09:10:07 | 显示全部楼层

强大~
发表于 2014-1-8 09:28:17 | 显示全部楼层
回复 2# apang


我也来一个
  1. @echo off
  2. for /f "tokens=3 delims= " %%a in ('query user ^| findstr :.*:') do (
  3.     reset session %%a
  4. )
复制代码
发表于 2014-1-8 11:27:12 | 显示全部楼层
回复 4# DAIC


    其实用户名有可能包含空格的,楼主所说的第5列,个人认为应该是一个未知数
发表于 2014-1-8 11:30:44 | 显示全部楼层
回复 5# apang


    query user 的结果里面显示的应该NT账号的名字吧,应该没有空格。等楼主出来说明一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 21:27 , Processed in 0.030444 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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