Yanıtlar:
Bu orijinal kaynaktı ama şimdi 404:
Pencerelerde bulunan (Windows Yönetim Arabirimi Komutu) WMIC'yi kullanmayı önerdiler:
WMIC /NODE: xxx.xxx.xxx.xxx COMPUTERSYSTEM GET USERNAME
Şu anda xxx.xxx.xxx.xxx’a giriş yapmış olan kullanıcı adını veya
WMIC /NODE: "workstation_name" COMPUTERSYSTEM GET USERNAME
şu anda "iş istasyonu_adı" na giriş yapmış olan kullanıcı adını döndürür
GÜNCELLEME: Bu, Windows 10'da da çalışmalıdır - uzaktaki makinede yönetici iseniz.
Üzgünüz, Sysinternals kullanmak istemediğinizi farketmediniz.
Bu şimdi bir Microsoft tekniği aracı, kullanmamak için herhangi bir neden var mı? Mark Russinovich Microsoft'a taşınmadan
önce Sysinternals'ı diğer üçüncü parti araçlara tercih ettim .
Microsoft Sysinternals Suite adlı bir araç vardır PsLoggedOn ,
psloggedon.exe -l
Ayrıca NBTSTAT var .
nbtstat -a NetBIOS-Computer-NAme
WMIC
, kabul edilen cevapta ise RPC'nin çalışmadığı yönünde şikayette bulundu. Bu, şu an açılmaktan hoşlanmadığım yeni bir solucanlar kutusudur, bu yüzden psursor'a baktım ve çok mutluyum.
Win32_loggedonuser kullandım, ancak birden fazla etki alanı kullanıcısının döndürüldüğü bir sorunla karşılaştım , bu nedenle amaçlarım için işe yaramadı. Bunun yerine kullandım (powershell'de)
#Get Currently logged in user
$ExplorerProcess = gwmi win32_process | where name -Match explorer
if($ExplorerProcess.getowner().user.count -gt 1){
$LoggedOnUser = $ExplorerProcess.getowner().user[0]
}
else{
$LoggedOnUser = $ExplorerProcess.getowner().user
}
if çünkü bazen getowner nedense birden fazla kullanıcı bildiriyor, nedenini bilmiyorum ama benim durumumda aynı kullanıcı olduğu için bir sorun olmadı.
Bu bilgiyi win32_loggedonuser adresinden alabilirsiniz.
Gönderen bu sayfada :
strComputer = "." ' " use "." for local computer
Set objWMI = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colSessions = objWMI.ExecQuery _
("Select * from Win32_LogonSession Where LogonType = 2 OR LogonType = 10")
If colSessions.Count = 0 Then
Wscript.Echo "No interactive users found"
Else
For Each objSession in colSessions
If objSession.LogonType = 2 Then
WScript.Echo "Logon type: Console"
Else
WScript.Echo "Logon type: RDP/Terminal Server"
End If
Set colList = objWMI.ExecQuery("Associators of " _
& "{Win32_LogonSession.LogonId=" & objSession.LogonId & "} " _
& "Where AssocClass=Win32_LoggedOnUser Role=Dependent" )
For Each objItem in colList
WScript.Echo "User: " & objItem.Name
WScript.Echo "FullName: " & objItem.FullName
WScript.Echo "Domain: " & objItem.Domain
Next
Wscript.Echo "Session start time: " & objSession.StartTime
WScript.Echo
Next
End If
UserName
, bu makineye giriş yapmış olmama rağmen, listelenen hiçbir şey olmadan yalnızca " " tek bir satır çıktı satırı alıyorum.