检测login到远程Windows计算机的人员

你如何找出谁login到远程Windows机器?

此刻我正在使用psloggedon ,但一次只能给我一台电脑。

psloggeon \\ 172.21.0.5

psloggedon

有没有更好的方法来扫描整个子网? 最好是一些GUI应用。

不是GUI,而是:

for /L %x in (2,1,254) do psloggedon \\172.21.0.%x 

将从172.21.0.2-254进行扫描。 你也可以嵌套:

 for /L %z in (16,1,31) do for /L %x in (1,1,254) do psloggedon \\172.21.%y.%x 

这将扫描172.21。{16-31} .x子网。

我发现这个脚本 。 它扫描整个域,并给你一个很好的输出(计算机名称和用户名)。

whoisloggedinwhere.bat> users.txt

 @echoclosures
 SETLOCAL
 (“net view / domain:”%USERDOMAIN%“^ | Findstr / L / C:”\\“)do(for / f”Tokens = 1“%% c in
  /(“Tokens = *”%% u in('PsLoggedOn -L %% c ^ | find / i“%USERDOMAIN%\”')
  调用:report %% c“%% u”
  )
 )
 ENDLOCAL
转到:EOF
 :报告
设置工作=%1
设置comp =%工作:〜2%
设置用户=%2
设置用户=%用户:“=%
 call set user = %% user:*%USERDOMAIN%\ = %%
 @echo%comp%%user%

这个脚本使用PsLoggedOn 。

试试nbtstat -a <computername>

我使用login脚本将用户名写入计算机说明属性中,该脚本让我可以看到AD用户和计算机中的所有内容,对其进行search等等。 非常方便。

如果服务器正在运行terminal服务,则可以使用terminal服务pipe理器查看域中的服务器以及login到其中的服务器。 它是GUI,可以在下面find

 Start -> Administrative Tools -> Terminal Services Manager 

qwinsta是另一个dos命令,但它仍然只能给你一个一个…

 C:\>qwinsta /server:test_srv SESSIONNAME USERNAME ID STATE TYPE DEVICE console test_usr 0 Active wdcon rdp-tcp 65536 Listen rdpwd 

您可以通过以下PowerShell脚本查询WMI来检测正在本地login到工作站的用户。 它返回本地login者或空string的名称。

 function logged_in($host_name) { (get-wmiobject -class Win32_ComputerSystem -computername $host_name ` -namespace "root\CIMV2").UserName } 

我不知道我在哪里得到它,但是我有这个代码来展示机器上的用户。 你可以把它包装在每个循环中扫描一堆机器。 我想说,如果你想知道谁login系统,最简单的方法是开启login审计并查看(或查询)安全日志。 以下是在任何特定时刻查看谁在线的代码:

 ' PARAMETERS ' strComputer = "machineName" ' use "." for local computer strUser = "domain\user" ' comment this line for current user strPassword = "password" ' comment this line for current user ' CONSTANTS ' wbemImpersonationLevelImpersonate = 3 wbemAuthenticationLevelPktPrivacy = 6 '======================================================================= ' MAIN '======================================================================= ' Connect to machine ' If Not strUser = "" Then ' Connect using user and password ' Set objLocator = CreateObject("WbemScripting.SWbemLocator") Set objWMI = objLocator.ConnectServer _ (strComputer, "root\cimv2", strUser, strPassword) objWMI.Security_.ImpersonationLevel = wbemImpersonationLevelImpersonate objWMI.Security_.AuthenticationLevel = wbemAuthenticationLevelPktPrivacy Else ' Connect using current user ' Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") End If ' Get OS name ' Set colOS = objWMI.InstancesOf ("Win32_OperatingSystem") For Each objOS in colOS strName = objOS.Name Next If Instr(strName, "Windows 2000") > 0 Then '------------------------------------------------------------------- ' Code for Windows 2000 '------------------------------------------------------------------- ' Get user name ' Set colComputer = objWMI.ExecQuery("Select * from Win32_ComputerSystem") For Each objComputer in colComputer Wscript.Echo "User: " & objComputer.UserName Next ' ------------------------------------------------------------------ Else ' ------------------------------------------------------------------ ' Code for Windows XP or later ' ------------------------------------------------------------------ ' Get interactive session ' Set colSessions = objWMI.ExecQuery _ ("Select * from Win32_LogonSession Where LogonType = 2") If colSessions.Count = 0 Then ' No interactive session found ' Wscript.Echo "No interactive user found" Else 'Interactive session found ' For Each objSession in colSessions Set colList = objWMI.ExecQuery("Associators of " _ & "{Win32_LogonSession.LogonId=" & objSession.LogonId & "} " _ & "Where AssocClass=Win32_LoggedOnUser Role=Dependent" ) ' Show user info ' For Each objItem in colList WScript.Echo "User: " & objItem.Name WScript.Echo "FullName: " & objItem.FullName WScript.Echo "Domain: " & objItem.Domain Next ' Show session start time ' Wscript.Echo "Start Time: " & objSession.StartTime Next End If ' ------------------------------------------------------------------ End If '======================================================================= 

我很惊讶没有人提到了login2,我已经使用了好几年了。 这是你要求的GUI实现,可以在这里find 。