我的任务是创建一个登录脚本,用于注销用户放弃的会话。我从Microsoft找到了这个看起来很有希望的开始。
我修改了Microsoft的脚本,目前已经有了这个。
query session %username% >session.txt
for /f "skip=1 tokens=3," %%i in (session.txt) DO logoff %%i
del session.txt
这会生成如下的session.txt。
SESSIONNAME USERNAME ID STATE TYPE DEVICE
rdp-tcp#66 someuser 3 Active
>rdp-tcp#67 someuser 12 Active
我的脚本当前跳过第一行,解析剩余的两行并按ID注销会话。我想改变这种行为,以便我只注销被放弃的会话(3)而不是我当前的会话(12)。我可以识别并过滤包含>?
的行答案 0 :(得分:3)
您不需要日志文件。这只会减慢你的脚本:
for /f "skip=1 tokens=3 eol=>" %%a in ('query session %username%') do set "sessionToKill=%%a"
echo %sessionToKill%
eol=>
将跳过以>
开头的每一行。您可以将注销逻辑直接放在for循环中,而不是set
。