【发布时间】:2015-12-16 22:46:25
【问题描述】:
我发现了如何在 Windows 中列出会话,我得到以下输出...
c:\logonsessions -c
Logonsessions v1.3
Copyright (C) 2004-2015 Mark Russinovich
Sysinternals - wwww.sysinternals.com
Session,User Name,Auth Package,Logon Type,Session,Sid,Logon Time,Logon Server,DNS Domain,UPN,Processes
00000000:000003e7,WORKGROUP\pcname$,NTLM,(none),0,S-1-5-18,9/19/2015 2:51:11 PM,,,,
00000000:0000a5ea,,NTLM,(none),0,(none),9/19/2015 2:51:11 PM,,,,
00000000:000003e4,WORKGROUP\pcname$,Negotiate,Service,0,S-1-5-20,9/19/2015 2:51:15 PM,,,,
00000000:000003e5,NT AUTHORITY\LOCAL SERVICE,Negotiate,Service,0,S-1-5-19,9/19/2015 2:51:15 PM,,,,
00000000:000003e3,NT AUTHORITY\IUSR,Negotiate,Service,0,S-1-5-17,9/19/2015 2:51:29 PM,,,,
00000000:000237ce,NT AUTHORITY\ANONYMOUS LOGON,NTLM,Network,0,S-1-5-7,9/19/20152:51:40 PM,,,,
00000000:0008f3b8,pcname\targetuser,NTLM,Interactive,3,S-1-5-21-619702857-3907507909-453961168-1000,9/19/2015 3:13:18 PM,D,,,
00000000:000c0c9d,IIS APPPOOL\siteA,Negotiate,Service,0,S-1-5-82-2579537164-80563901-952080054-1630798588-2545742339,9/19/2015 3:31:45 PM,,,,
00000000:001df99a,IIS APPPOOL\siteB,Negotiate,Service,0,S-1-5-82-3368103016-2489489752-2714024436-2368677762-3860426159,9/19/2015 5:16:52 PM,,,,
或
c:\query session
SESSIONNAME USERNAME ID STATE TYPE DEVICE
0 Disc
>console targetuser 3 Active
rdp-tcp 65536 Listen
所以如果已知用户名是“targetuser”,那么上面的会话 ID 就是 3。
如何读取/解析此内容以获取会话编号?我预计将来它不会总是“3”。另一种选择是依赖控制台用户,因为只能是一个,对吗? (此工作站上未启用用户切换)并返回控制台用户的会话号。
我为什么要关心会话#?因为我需要运行一些东西来提示工作站上的用户是否现在要这样做。
当我通过...启动此过程时
psexec -accepteula -i 3 -d "C:\Program Files (x86)\Skype\Phone\Skype.exe" /callto:[user_ID]
...我必须能够提供会话 ID(在本例中为 3)
编辑:显然,这可能更容易......
c:\query session targetuser
SESSIONNAME USERNAME ID STATE TYPE DEVICE
>console targetuser 3 Active
...所以这已经接近我想要的了,现在我只需要解析第二行以找到 ID(在本例中为“3”)并将其存储为变量。
【问题讨论】:
标签: windows batch-file skype