Şu anda Windows iş istasyonunda kimin oturum açtığını komut satırından nasıl kontrol edebilirim?


37

Ortam etki alanında, sunucu Windows Server 2003, iş istasyonlarında Vista ve XP yüklü.
Şu anda iş istasyonunda kimin oturum açtığını, tercihen bazı basit komut satırlarından systernternals veya üçüncü parti programlardan uzak olanları uzaktan kontrol etmem gerekiyor.

Teşekkürler

Yanıtlar:


47

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.


Bu komutu uzaktan veya yerel olarak çalıştırdığımda UserName, bu makineye giriş yapmış olmama rağmen, listelenen hiçbir şey olmadan yalnızca " " tek bir satır çıktı satırı alıyorum.
Dai

@Dai XP veya Vista veya 2003 kullanıyor musunuz? Bu soru şu os içindi
Preet Sangha

17

Ü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

3
Sysinternals sadece iş. Umarım Mark'a oraya gitmek için bir ton para ödediler, şu anda daha önce yaptığı iyi işi yapmasını engellememişlerdir ve uzun süre devam edebilir.
gbjbaanb

@gbjbaanb, bu konuda mutluyum. Umarım sürekli güncellenir ve odaya eklenir.
nik

1
Bu benim için harikalar yarattı 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.
Mike S

12

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ı.


2
Bunun nedeni, birden fazla kullanıcının giriş yapmış olmasıdır. Yıllar önce hızlı kullanıcı değiştirme vb. I) Diğer kullanıcının oturumunu açık tutması.
TomTom

İyi Nokta @ TomTom, bunu unuttum, sanırım [win32_loggedonuser] aynı zamanda psexec'd veya powershell de olan herkesi geri getirecektir.
MDMoore313

6

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.