একজন ব্যবহারকারী সর্বশেষ লগইন করেছেন কম্পিউটারটি সন্ধানের সেরা উপায়?


23

আমি আশা করছি যে অ্যাক্টিভ ডিরেক্টরিতে কোথাও "[কম্পিউটার] থেকে সর্বশেষ লগ ইন করা" লেখা আছে / সঞ্চিত আছে, বা এমন একটি লগ আছে যা আমি পার্স করতে পারি?

শেষ পিসিটি লগইন করা হয়েছে তা জানার উদ্দেশ্যটি হল নেটওয়ার্কের মাধ্যমে দূরবর্তী সমর্থন সরবরাহ করা - আমাদের ব্যবহারকারীরা খুব কম সময়েই ঘুরে বেড়ান, তবে আমি জানতে চাই যে আমি যা যা পরামর্শ করছি সেদিন সকালে আপডেট করা হয়েছিল (যখন তারা লগ ইন করেছিল , সম্ভবত) সর্বনিম্ন।

আমি লগইন স্ক্রিপ্টগুলিও বিবেচনা করছি যা ব্যবহারকারীর নাম এবং কম্পিউটারের নামগুলি একটি পরিচিত স্থানে লিখতে পারে যা আমি উল্লেখ করতে পারি, তবে আমাদের কিছু ব্যবহারকারী একসাথে 15 দিনের জন্য লগআউট করতে পছন্দ করেন না।

যদি লগইন স্ক্রিপ্টগুলি ব্যবহার করে এমন একটি মার্জিত সমাধান থাকে তবে অবশ্যই এটি উল্লেখ করুন - তবে যদি এটি কেবল স্টেশনটি আনলক করার জন্য কাজ করে তবে এটি আরও ভাল!

উত্তর:


26

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


এছাড়াও, লগটিতে সংযোজন করে আপনি একটি historicalতিহাসিক রেকর্ড পান যা কখনও কখনও খুব সহজ হতে পারে।
জন গার্ডেনিয়ার্স 21

1
আপাতত এটি প্রয়োগ করা হয়েছে, সম্ভবত ভবিষ্যতে আরও বৈশিষ্ট্যযুক্ত একটি ভিবিএসে স্থানান্তরিত হবে :) এখনও অবধি, একটি খুব সাধারণ ব্যাচের লগন স্ক্রিপ্ট ব্যবহার করে: প্রতিধ্বনিত% তারিখ%,% সময়%,% ব্যবহারকারী নাম%, লগন,% কমপিউটারনেম% >> \\ সার্ভার \ লগন $ \ logons.csv এক্সেলের সাথে খুলুন, এবং আপনি সেট করেছেন!
গ্যারেট

লগইন স্ক্রিপ্টটি কি ব্যবহারকারী হিসাবে চালিত হয়, সেই ক্ষেত্রে ব্যবহারকারীও প্রবেশ করতে এবং লগটি সংশোধন করতে পারে?
জেমস ইয়েল

@ জেমস, এই কারণেই আমি লগগুলি সঞ্চয় করতে একটি গোপন ভাগ ব্যবহার করি। অবশ্যই এটি আপনার ব্যবহারকারীদের কতটা বুদ্ধিমান তার উপর নির্ভর করবে, কারণ কেবল স্ক্রিপ্টটি পড়ে লোকেশনটি পাওয়া যায়। আমার বর্তমান ব্যবহারকারীদের সেট নিয়ে আমার সমস্যা নেই। :)
জন গার্ডেনেয়ার্স

1
আমি অনুরূপ কিছু করেছি, লগন স্ক্রিপ্টটি কোনও ওয়েব সার্ভিসে কল করেছিল যা একটি ডাটাবেস আপডেট করে। বর্তমান অবস্থা দেখতে ডেটাবেসটির একটি ওয়েব ফ্রন্ট-এন্ড ছিল। তবে এটি মোবাইল ব্যবহারকারীদের জন্য সমস্যাযুক্ত ছিল।
নিক

10

আমরা লগন স্ক্রিপ্টের মাধ্যমে এটি করি যা এডি তে কম্পিউটার অবজেক্টের বিবরণ আপডেট করে।

"প্রমাণীকরণকারী ব্যবহারকারীদের" ডোমেন / সেগুলিতে কম্পিউটার সামগ্রীর বিবরণ সম্পত্তি লিখতে দেওয়ার জন্য আপনাকে নিয়ন্ত্রণের একটি কাস্টম প্রতিনিধি সম্পাদন করতে হবে।

এটি হয়ে গেলে, আপনার কেবলমাত্র একটি স্ক্রিপ্ট দরকার যা আপনি চান যা তথ্য উত্পন্ন করে এবং কম্পিউটারের অবজেক্টে বৈশিষ্ট্যগুলি লেখেন। এই স্ক্রিপ্টটি ডোমেনের সাথে সংযুক্ত একটি গ্রুপ পলিসি অবজেক্টের মাধ্যমে লগইন স্ক্রিপ্ট হিসাবে বরাদ্দ করা হয়।

আমরা বিবরণ ক্ষেত্রে একটি টাইমস্ট্যাম্প, ব্যবহারকারীর নাম, আইপি (গুলি) রেখেছি। টাইমস্ট্যাম্পটি প্রথম আসে কারণ এটি বর্ণনা ক্ষেত্রের বাছাই করে দ্রুত "পুরাতন" কম্পিউটারের বিষয়গুলি সহজেই দেখায়।

আপনি যদি এটি একটি প্রাথমিক পয়েন্ট হিসাবে ব্যবহার করতে চান তবে এই জন্য আমি যে স্ক্রিপ্টটি লিখেছি তা এখানে:

On Error Resume Next

Set objSysInfo = CreateObject("ADSystemInfo") 'Bind to AD
Set objNet = CreateObject("WScript.Network")

strCompDN = objSysInfo.ComputerName 'DN for computer, e.g. "CN=VISTAWORKSTATION,OU=Child OU Name,OU=Parent OU Name,DC=domain,DC=com"
Set objComp = GetObject("LDAP://" & strCompDN) 'IADsComputer object

strUserDN = objSysInfo.UserName 'DN for user, e.g. "CN=John Smith,OU=Child OU Name,OU=Parent OU Name,DC=domain,DC=com"
Set objUser = GetObject("LDAP://" & strUserDN) 'IADsUser object

strUsrLogin = LCase(objNet.UserName)

strNow = Now
strDateStamp = DatePart("yyyy",strNow) & _
    Right("0" & DatePart("m",strNow), 2) & _
    Right("0" & DatePart("d",strNow), 2) & _
    "@" & _
    Right("0" & DatePart("h",strNow), 2) & _
    Right("0" & DatePart("n",strNow), 2)

'RegExp object used to perform a simple match on IP address
Set objRE = New RegExp
objRE.IgnoreCase = True
'Note this regexp pattern isn't "correct" for matching an IPv4 address properly, but since WMI will return an
'array of IP addresses, this is sufficient to distinguish IPv4 vs IPv6
objRE.Pattern = "^\d+\.\d+\.\d+\.\d+$"

strIP = ""

'Connect to WMI and retreive all network adapters
Set objWMI = GetObject("winmgmts:")
Set colNICs = objWMI.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration")

'Get the IP(s) assigned to whichever network adapter has our default gateway
If colNICs.Count > 0 Then
    For Each objNIC in colNICs
        If IsArray(objNIC.DefaultIPGateway) Then
            arrIP = objNIC.IPAddress
            For i = 0 To UBound(arrip)
                If objRE.Test(arrIP(i)) Then strIP = strIP & " " & arrIP(i)
            Next
            strMAC = objNIC.MACAddress
        End If  
    Next
End If

strIP = Trim(strIP)

objComp.Description = strDateStamp & " " & strUsrLogin & " " & strIP
objComp.Put "extensionAttribute1", strUsrLogin
objComp.Put "extensionAttribute2", strIP
objComp.Put "extensionAttribute3", strMAC

objComp.SetInfo

অনুমোদনপ্রাপ্ত ব্যবহারকারীগণ কীভাবে এডি তে বর্ণনা ক্ষেত্রের অবজেক্টে অনুমতিগুলি লেখার অনুমতি দেবেন?
NULL.Dude

6

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

get-eventlog "Security" | where {$_.Message -like "*Username*" -AND "Source Network Address"} | export-csv C:\Temp\test.csv

এক্সেল বা আপনার ফেভার এডিটর দিয়ে .csv খুলুন এবং সর্বাধিক সাম্প্রতিক এন্ট্রি সন্ধান করুন যা একই ইভেন্টের মধ্যে অ্যাকাউন্টের নাম (ব্যবহারকারীর নাম) এবং উত্স নেটওয়ার্ক ঠিকানা উভয়ই দেখায়।
এটি কোনও 100% নির্ভরযোগ্য সমাধান না (ডিএইচসিপি লিজের সময় ইত্যাদির উপর নির্ভর করে) হতে পারে তবে এটি আমার পক্ষে কাজ করে।


6

আপনি অ্যাকাউন্ট লগন ইভেন্টগুলির জন্য নিরীক্ষণ সক্ষম করতে পারেন । এই ইভেন্টগুলি (ওয়ার্কস্টেশন আনলক সহ) ডিসির সুরক্ষা লগে সংরক্ষণ করা হবে।

তৃতীয় পক্ষের সরঞ্জামগুলি রয়েছে যা এটি আরও সহজ করে তুলতে পারে যেমন ট্রু লাস্ট লগন


4

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


3

ThatGraemeGuy , দুর্দান্ত স্ক্রিপ্ট জন্য ধন্যবাদ! আমাকে পাওয়ারশেলের মধ্যে এটি আবার লিখতে হয়েছিল, তবে এটি এখনও কার্যকর হয়।

$CompDN = "(&(objectCategory=computer)(objectClass=computer)(cn=$env:COMPUTERNAME))"
$strCompDN = [string]([adsisearcher]$CompDN).FindOne().Properties.distinguishedname
$objComp = [ADSI]("LDAP://"+$strCompDN)

# quit if computer is a server or DC
if (($strCompDN -like '*Controller*') -or ($strCompDN -like '*SERVER*')) { exit }

$strUsrLogin = $env:username
$strDateStamp = Get-Date -f 'yyyy-MM-dd@HH:mm'
$IPPattern = "^\d+\.\d+\.\d+\.\d+$"

$colNICs = gwmi Win32_NetworkAdapterConfiguration
if ($colNICs.Count -gt 0) {
foreach ($objNIC in $colNICs){
        if ($objNIC.DefaultIPGateway) {
            $arrIP = $objNIC.IPAddress
            for ($i=0; $i -lt $colNICs.Count; $i++) { 
            if ($arrIP[$i] -match $IPPattern) { $strIP = $arrIP[$i]; $strMAC = $objNIC.MACAddress }
            }
        }
    }
}

$objComp.Description = $strDateStamp + " - " + $strUsrLogin + " - " + $strIP
$objComp.extensionAttribute1 = $strUsrLogin
$objComp.extensionAttribute2 = $strIP
$objComp.extensionAttribute3 = $strMAC
$objComp.SetInfo()

2

ব্যবহারকারীরা অ্যাডামের পরামর্শগুলি বাদ দিয়ে সর্বশেষে লগ ইন করল তা নির্দিষ্ট করে জানার কৌশলটি হ'ল লগের সমষ্টি। আপনার যদি একাধিক ডোমেন কন্ট্রোলার থাকে তবে আপনাকে সেগুলি সবগুলি পরীক্ষা করতে হবে, অথবা আপনার লগিংকে কেন্দ্রিয় করতে হবে এবং তারপরে একক লগটি পরীক্ষা করতে হবে।

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


1

আদর্শভাবে, আপনি নিজের সিএসআইআরটি টিমকে আক্রমণে সহায়তা করার জন্য নিম্নলিখিতগুলি ক্যাপচার করবেন।

ওয়ার্কস্টেশন নাম ম্যাক ঠিকানা আইপি ঠিকানা তারিখ / টাইমস্ট্যাম্প লগইন টাইপ (আরডিপি, ইন্টারফ্যাকটিভ ইত্যাদি) দিয়ে ইউজারিড লগ ইন

তারপরে এটিকে কোনও এসকিএল কমান্ডের মধ্যে একটি ডাটাবেসে ফেলে দিন যা তারা জিজ্ঞাসা করতে পারে। বিটস এবং টুকরোগুলি সমস্ত জায়গাতে লগইন করা হয়েছে তবে এটি রেকর্ডিং করা ডিএইচসিপি / উইনস সার্ভার ইত্যাদি থেকে ডেটা টানতে সময় সাশ্রয় করে ...


1
"হেই, ডনির কম্পিউটার নাম কী?" এর জন্য এটি কিছুটা ওভারকিল বলে আমি মনে করি? তবে সম্ভবত কোনও দিন আমরা সেই স্তরে থাকব: পি
গ্যারিট

0

খুব সাম্প্রতিক তথ্য পাওয়ার একমাত্র উপায় হ'ল লগ ফোরেজিং। মাইক্রোসফ্ট অপারেশনস ম্যানেজারের মতো একটি সরঞ্জাম বা সার্ভার থেকে আকর্ষণীয় ইভেন্টের লগগুলি কেন্দ্রীয় স্থানে (সাধারণ পাঠ্য ফাইল বা এসকিউএল ডাটাবেস) একীভূত করার জন্য ফাঁসির মতো ফ্রি টুল ব্যবহার করুন এবং তারপরে আপনার ইচ্ছার প্রতিবেদনটি তৈরি করতে লগপার্সার বা এসকিউএল কোয়েরির মতো সরঞ্জামগুলি ব্যবহার করুন।

বিভিন্ন ইভেন্টের জন্য বিভিন্ন ইভেন্ট আইডি সন্ধানের জন্য ইভেন্ট লগ এনসাইক্লোপিডিয়া থেকে যান

আমাকে জানতে দিন, আপনি যদি এই রুটটি অনুসরণ করতে চান তবে আমি আপনাকে লগপার্সারের জন্য উপযুক্ত প্রশ্ন তৈরি করতে সহায়তা করতে পারি।


0

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


0

ind লগ ইন এডি

অনেক সময় আমাদের জানতে হবে যে নির্দিষ্ট লগইন বিজ্ঞাপন ব্যবহারকারী গোষ্ঠীর একটি অংশ কিনা। বা কখনও কখনও আমাদের একটি এডি গ্রুপ জানতে হবে এবং সমস্ত লগিনগুলি এর অংশ কিনা তা জানতে চেয়েছিলাম।

এটি অর্জনের বিভিন্ন উপায় রয়েছে।

আমি আমার ডেস্কটপে একটি শর্টকাট তৈরি করতে এই পদক্ষেপটি অনুসরণ করি যেখানে আমি সহজেই লগইনগুলি খুঁজে পেতে পারি দয়া করে প্রক্রিয়াটি অনুসরণ করুন

START-> RUN -> rundll32 dsquery, OpenQueryWindow

এটি ব্যবহার করে আপনি যে সমস্ত AD অংশীদার হয়েছেন তা সন্ধান করতে পারেন।

শুরু-> সেটিংস-> কন্ট্রোল প্যানেল -> প্রশাসক সরঞ্জাম -> সক্রিয় ডিরেক্টরি ব্যবহারকারী এবং কম্পিউটার আপনি যে ডোমেনটি লগইন সন্ধান করতে চান তা নির্বাচন করুন, সেই ডোমেনে ডান ক্লিক করুন এবং "অনুসন্ধান করুন" বিকল্পটি চয়ন করুন।


0

আমি উপরের মার্কুসভের উত্তরের মন্তব্য হিসাবে এটি যুক্ত করতে যাচ্ছিলাম, তবে আমার সুনাম নেই তাই আলাদা উত্তর করতে হবে:

এই অভিব্যক্তিটিতে এবং "সোর্স নেটওয়ার্ক ঠিকানা" সর্বদা সত্যে মূল্যায়ন করবে

আমার মনে হয় আপনার যা প্রয়োজন তা হ'ল: গেট-ইভেন্টলগ "সুরক্ষা" | যেখানে {$। ম্যাসেজ-মত "* ব্যবহারকারীর নাম *" -অ্যান্ড $। মেসেজ.কন্টেন ("উত্স নেটওয়ার্ক ঠিকানা")}

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