Yanıtlar:
GUI değil, ancak:
for /L %x in (2,1,254) do psloggedon \\172.21.0.%x
172.21.0.2-254'ten itibaren tarama yapacaktır. Ayrıca şunları da iç içe yerleştirebilirsiniz:
for /L %z in (16,1,31) do for /L %x in (1,1,254) do psloggedon \\172.21.%y.%x
Bu, 172.21. {16-31} .x alt ağlarını tarar.
Bu senaryoyu buldum . Tüm etki alanını tarar ve size güzel bir çıktı (bilgisayar adı ve kullanıcı adı) verir.
whoisokedinwhere.bat> kullanıcılar.txt
@Eko kapalı setlocal / f "Tokens = 1" için %% c ('net view / domain: "% USERDOMAIN%" ^ | Findstr / L / C: "\\"') do ( / f "Tokens = *" için %% u ('PsLoggedOn -L %% c ^ | find / i "% USERDOMAIN% \"') için ( çağrı: %% c "%% u" rapor et ) ) endlocal Git: EOF :bildiri iş ayarla =% 1 set comp =% iş: ~% 2 kullanıcı ayarla =% 2 set user =% kullanıcı: "=% çağrı kümesi kullanıcı = %% kullanıcı: *% USERDOMAIN% \ = %% @echo% comp%% kullanıcı%
Bu komut dosyası PsLoggedOn kullanıyor .
AD Kullanıcıları ve Bilgisayarları'ndaki her şeyi görmemi, arama yapmamı vb. Sağlayan bir oturum açma komut dosyası kullanarak kullanıcı adını bilgisayar açıklaması özelliğine yazıyorum. Çok kullanışlı.
Sunucular Terminal Hizmetleri çalıştırıyorsa, bir etki alanındaki sunucuları ve oturum açan kişileri görüntülemek için Terminal Hizmetleri Yöneticisi'ni kullanabilirsiniz. GUI'dir ve altında bulunabilir
Start -> Administrative Tools -> Terminal Services Manager
Aşağıdaki PowerShell betiği aracılığıyla WMI'yı sorgulayarak bir iş istasyonunda yerel olarak oturum açmış bir kullanıcıyı algılayabilirsiniz . Yerel olarak oturum açan kişinin adını veya boş dizeyi döndürür.
function logged_in($host_name) {
(get-wmiobject -class Win32_ComputerSystem -computername $host_name `
-namespace "root\CIMV2").UserName
}
Nerede bulduğumdan emin değilim ama bu kodu bir makinedeki kullanıcıları gösteren etrafında yerleştiriyorum. Bir grup makineyi taramak için her döngü için bunu bir sargıya sarabilirsiniz. Bir sistemde kimin oturum açtığını bilmek istiyorsanız, en basit yol giriş denetimini açmak ve güvenlik günlüğüne (veya sorgulamaya) bakmaktır. Herhangi bir anda kimin olduğunu görmek için kod:
' 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
'=======================================================================
Henüz kimsenin logon2'den bahsetmediğine şaşırdım, bu da birkaç yıldır kullanıyorum. İstediğiniz GUI uygulamasıdır ve buradan ulaşabilirsiniz .