पता लगाएँ कि दूरस्थ विंडोज मशीनों पर कौन लॉग ऑन है


9

आप यह कैसे पता लगा सकते हैं कि दूरस्थ विंडोज़ मशीनों में कौन लॉग ऑन है?

मैं इस समय psloggedon का उपयोग कर रहा हूं , लेकिन यह मुझे एक समय में केवल एक कंप्यूटर देता है।

psloggeon \\ 172.21.0.5

psloggedon

क्या एक बेहतर तरीका है कि पूरे सबनेट को कैसे स्कैन किया जाए? अधिमानतः कुछ जीयूआई आवेदन।

जवाबों:


9

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 सबनेट।


अच्छा है, लेकिन समस्या यह है कि यह हर आईपी पते की कोशिश करता है। यदि कोई होस्ट सक्रिय नहीं है, तो यह थोड़े 30 सेकंड या इससे पहले जारी रहता है। आउटपुट थोड़ा गड़बड़ है।
जिंदरिच

आप मशीन के खिलाफ एक पिंग कर सकते हैं (xxxx -n 1 को पिंग करें) और इसके आउटपुट की जांच करें, इस तरह किसी भी मशीन के खिलाफ आपका समय समाप्त होने पर पिंग के लिए एक सेकंड
benPearce

8

मुझे यह स्क्रिप्ट मिली । यह एक संपूर्ण डोमेन को स्कैन करता है और आपको एक अच्छा आउटपुट (कंप्यूटर नाम और उपयोगकर्ता नाम) देता है।

whoisloggedinwhere.bat> users.txt

@ तो बंद
setlocal
for / f "टोकन = 1" %% c में ('शुद्ध दृश्य / डोमेन: "% USERDOMAIN%" ^ | | Findstr / L / C: "\\"') करते हैं ()
 for / f "टोकन = *" %% u in ('PsLoggedOn -L %% c ^ | खोज / i "% USERDOMAIN% \") करें ()
  कॉल: रिपोर्ट %% c "%% यू"
 )
)
endlocal
गोटो: ईओएफ
:रिपोर्ट good
सेट काम =% 1
सेट COMP =% काम: ~ 2%
सेट उपयोगकर्ता =% 2
सेट उपयोगकर्ता =% उपयोगकर्ता: "=%
कॉल सेट उपयोगकर्ता = %% उपयोगकर्ता: *% USERDOMAIN% \ = %%
@echo% COMP%% उपयोगकर्ता%

यह स्क्रिप्ट PsLoggedOn का उपयोग करती है


2

प्रयत्न nbtstat -a <computername>


आपने 2 प्रश्न पूछे। यह आपके पहले जवाब देता है।
PowerApp101

2

मैं लॉगऑन स्क्रिप्ट का उपयोग करके कंप्यूटर विवरण संपत्ति में उपयोगकर्ता नाम लिखता हूं, जो मुझे AD उपयोगकर्ता और कंप्यूटर में सब कुछ देखने देता है, उस पर खोज करता है, और इसी तरह। बेहद सुविधाजनक।


1

यदि सर्वर टर्मिनल सेवा चला रहे हैं, तो आप किसी डोमेन में सर्वर को देखने के लिए टर्मिनल सेवा प्रबंधक का उपयोग कर सकते हैं और उन पर लॉग इन कौन है। यह जीयूआई है और इसके तहत पाया जा सकता है

Start -> Administrative Tools -> Terminal Services Manager

1

क्विंस्टा एक और डॉस कमांड है, लेकिन यह अभी भी आपको केवल एक बार ही देगा ...

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

1

आप निम्नलिखित PowerShell स्क्रिप्ट के माध्यम से WMI को क्वेरी करके स्थानीय रूप से कार्यस्थान पर लॉग किए जा रहे उपयोगकर्ता का पता लगा सकते हैं । यह स्थानीय या खाली स्ट्रिंग पर लॉग इन करने वाले का नाम देता है।

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

0

मुझे यकीन नहीं है कि मुझे यह कहां मिला है, लेकिन मेरे पास यह कोड है जो उपयोगकर्ताओं को एक मशीन पर दिखाता है। मशीनों के एक समूह को स्कैन करने के लिए आप प्रत्येक लूप के लिए इसे लपेट सकते हैं। मैं कहूंगा कि यदि आप यह जानना चाहते हैं कि सिस्टम पर लॉग इन किसका सबसे सरल तरीका है लॉगिन ऑडिटिंग को चालू करना और सुरक्षा लॉग को (या क्वेरी) देखना। यह देखने के लिए कोड है कि किसी भी समय कौन है:

' 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

'=======================================================================

0

मुझे आश्चर्य है कि किसी ने भी अभी तक लॉगऑन 2 का उल्लेख नहीं किया है, जिसका मैं काफी सालों से उपयोग कर रहा हूं। यह GUI कार्यान्वयन है जिसे आपने मांगा था और यहां उपलब्ध है


जब मैं इसे विंडोज 7 पर चलाता हूं, तो मुझे त्रुटि मिलती है: त्रुटि - छोड़ना। ServerBrowseDialogA0 के लिए प्रवेश बिंदु नहीं मिल सका। शायद यह Win7 पर नहीं चलता है? क्या आपको त्रुटि के बिना इसे चलाने के लिए व्यवस्थापक अधिकारों की आवश्यकता है?
स्टीव

@ अब, मुझे पता है कि किसी और ने इसे पोस्ट क्यों नहीं किया। आप सही हैं, यह विन 7 पर काम नहीं करता है, कम से कम 64 बिट संस्करण नहीं। मैं यह देखने जा रहा हूं कि क्या मैं एक एक्सएल मशीन से आवश्यक डीएलएल कॉपी कर सकता हूं और इसे काम कर सकता हूं। अगर आपको कोई सफलता मिली तो मैं आपको बता दूंगा।
जॉन गार्डनियर्स 5
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.