কমান্ড লাইন থেকে বর্তমানে কে উইন্ডোজ ওয়ার্কস্টেশনে লগ ইন করেছেন তা কীভাবে পরীক্ষা করবেন?


37

পরিবেশ ডোমেনে রয়েছে, সার্ভারটি উইন্ডোজ সার্ভার 2003, ওয়ার্কস্টেশনগুলিতে ভিস্তা এবং এক্সপি ইনস্টল করা আছে।
আমার বর্তমানে দূরবর্তী অবস্থান থেকে ওয়ার্কস্টেশনে লগ করা কারা, সাধারণত কিছু সাধারণ কমান্ড লাইন থেকে এবং সিস্টেটার্নাল বা তৃতীয় পক্ষের প্রোগ্রামগুলি ছাড়াই পরীক্ষা করার উপায়টি প্রয়োজন।

ধন্যবাদ

উত্তর:


47

এটি আসল উত্স ছিল তবে এখন এটি 404:

তারা উইন্ডোতে উপলব্ধ (উইন্ডোজ ম্যানেজমেন্ট ইন্টারফেস কমান্ড) ডাব্লুএমআইসি ব্যবহার করার পরামর্শ দিয়েছে:

WMIC /NODE: xxx.xxx.xxx.xxx COMPUTERSYSTEM GET USERNAME 

বর্তমানে এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স অথবা ইউজারনেমটি ফিরিয়ে দেবে

WMIC /NODE: "workstation_name" COMPUTERSYSTEM GET USERNAME 

বর্তমানে "ওয়ার্কস্টেশন_নাম" এ লগ ইন করা ব্যবহারকারী নামটি ফিরিয়ে দেবে

আপডেট: এটি উইন্ডোজ 10 এও কাজ করা উচিত - যদি আপনি দূরবর্তী মেশিনের প্রশাসক হন।


আমি যখন এই কমান্ডটি দূরবর্তী বা স্থানীয়ভাবে চালনা করি তখন আমি কেবলমাত্র " UserName" মেশিনে লগ ইন থাকা সত্ত্বেও অন্য কোনও কিছুই তালিকাভুক্ত না করে আউটপুটের একক লাইন পাই।
দাই

@ ডাই আপনি কি এক্সপি বা ভিস্তা বা 2003 ব্যবহার করছেন? এই প্রশ্নটি সেই ওসদের জন্য ছিল
প্রীত সংঘ

17

দুঃখিত, আপনি সিসিন্টার্নাল ব্যবহার করতে চান না তা খেয়াল করেননি।
এটি এখন মাইক্রোসফ্ট টেকনেট টুল, এটি ব্যবহার না করার কোনও নির্দিষ্ট কারণ? মার্ক রাশিনোভিচ মাইক্রোসফ্টে স্থানান্তরিত
হওয়ার আগে আমি অন্যান্য তৃতীয় পক্ষের সরঞ্জামগুলির চেয়ে সিন্সটার্নালদের পছন্দ করেছি


মাইক্রোসফট Sysinternals সুইট একটি হাতিয়ার বলা Psloggedon ,

psloggedon.exe -l

রয়েছে NBTSTAT ,

nbtstat -a NetBIOS-Computer-NAme

3
sysinternals কেবল ব্যবসা। আমি আশা করি তারা সেখানে যাওয়ার জন্য মার্ককে এক টন অর্থ দিয়েছিল, বর্তমানে তারা তার আগে যে ভাল কাজ করে যাচ্ছিল তা করতে বাধা দেয়নি এবং দীর্ঘকাল চলতে পারে।
gbjbaanb

@gbjbaanb, আমি সে সম্পর্কে খুশি। আশা করি তিনি স্যুটটিতে আপডেট এবং যোগ করে চলেছেন।
নিক

1
এটি আমার জন্য বিস্ময়কর কাজ করেছে, তবে WMICস্বীকৃত উত্তরে অভিযোগ করেছে যে আরপিসি চলছে না। এটি কীটপতঙ্গগুলির একটি নতুন ক্যান যা এখনই খোলার মতো মনে হচ্ছে না, তাই আমি psloggedon এ যাচাই করেছিলাম এবং আমি বেশ খুশি।
মাইক এস

12

আমি win32_loggedonuser ব্যবহার করেছি, তবে এমন একটি ইস্যুতে ছড়িয়ে পড়েছি যেখানে একাধিক ডোমেন ব্যবহারকারীকে ফিরিয়ে দেওয়া হয়েছিল, সুতরাং এটি আমার উদ্দেশ্যে কাজ করে না। পরিবর্তে আমি ব্যবহার করেছি (পাওয়ারশেল)

#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
}

যদি এটি হয় কারণ কখনও কখনও গ্রাহকরা কোনও কারণে একাধিক ব্যবহারকারীর প্রতিবেদন করবেন, কেন জানি না তবে আমার ক্ষেত্রে এটি একই ব্যবহারকারী তাই এটি কোনও সমস্যা ছিল না।


2
কারণটি হ'ল একাধিক ব্যবহারকারী লগ ইন হতে পারে Fast দ্রুত ব্যবহারকারী স্যুইচিং ইত্যাদি বহু বছর আগে চালু হয়েছিল। I) টি অন্য ব্যবহারকারীকে লগইন করে রাখে।
টমটম

গুড পয়েন্ট @ টমটম, আমি এটি সম্পর্কে ভুলে গেছি, আমি মনে করি [win32_loggedonuser] যে কেউ psexecd বা পাওয়ার শেল করেছে তাকেও ফিরিয়ে আনবে।
MDMoore313

6

আপনি win32_loggedonuser থেকে এই তথ্যটি পেতে পারেন।

এই পৃষ্ঠা থেকে :

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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.