Windows: اكتشف من قام بتسجيل الدخول وأين

Windows: اكتشف من قام بتسجيل الدخول وأين
- أوه ، لا شيء يعمل بالنسبة لي ، ساعدني!
لا تقلق ، سنصلحها الآن. قم بتسمية جهاز الكمبيوتر الخاص بك ...
(نوع كلاسيكي من مكالمات الدعم الفني)

إنه لأمر جيد إذا كان لديك أداة مثل BgInfo أو يعرف المستخدمون عن اختصار Windows + Pause / Break ويعرفون كيفية الضغط عليه. حتى أن هناك عينات نادرة تمكنت من معرفة اسم سيارتهم. ولكن غالبًا ما يكون لدى المتصل ، بالإضافة إلى مشكلته الرئيسية ، مشكلة ثانية: معرفة اسم / عنوان IP للكمبيوتر. وغالبًا ما يستغرق حل هذه المشكلة الثانية وقتًا أطول بكثير من المشكلة الأولى (وكان عليك فقط تغيير خلفية الشاشة أو إعادة التسمية المفقودة :).
لكن من الأجمل بكثير أن تسمع شيئًا مثل:
- تاتيانا سيرجيفنا ، لا تقلق ، أنا متصل بالفعل ...


ولا يتطلب الأمر الكثير للقيام بذلك.
يحتاج أخصائي الدعم الفني فقط إلى حفظ أسماء الآلات وتذكر من يعمل من أجل ماذا.
قبل وصف الحل الذي نستخدمه حاليًا ، سأبحث بإيجاز في الخيارات الأخرى من أجل انتقادها إلى النهاية وشرح اختياري.

  1. معلومات أساسية, معلومات سطح المكتب وما شابه ذلك. إذا كان هناك الكثير من المال ، فهناك أيضًا أموال مدفوعة. خلاصة القول هي أن المعلومات الفنية يتم عرضها على سطح المكتب: اسم الجهاز وعنوان IP وتسجيل الدخول وما إلى ذلك. في معلومات سطح المكتب ، يمكنك قص الرسوم البيانية للأداء إلى نصف الشاشة.
    لا يناسب ذلك بالنسبة إلى Bginfo نفسه ، على سبيل المثال ، يحتاج المستخدم إلى تصغير النوافذ من أجل رؤية البيانات الضرورية. أكثر من مرة ، لاحظت أنا وزملائي في BgInfo قطعة أثرية مميزةعندما يتم عرض النص الجديد أعلى النص القديم.
    يشعر بعض المستخدمين بالانزعاج من حقيقة أن المسؤولين يرسمون 192.168.0.123 مخيفًا على وجه قطة ممتدة على سطح المكتب ، مما يفسد جماليات صورة الخلفية ، وهذا بالطبع محبط بشكل رهيب ويقتل مزاج العمل تمامًا .
  2. قم بتسمية a la "من أنا" (لا تحاول إضافة علامة استفهام إليها في النهاية :). اختصار كلاسيكي على سطح المكتب ، يخفي خلفه نصًا برمجيًا أنيقًا أو ليس تمامًا يعرض المعلومات الضرورية في شكل مربع حوار. في بعض الأحيان ، بدلاً من الاختصار ، يتم وضع البرنامج النصي نفسه على سطح المكتب ، وهو ما يعد IMHO سلوكًا سيئًا.
    العيب هو أنه لتشغيل الاختصار ، كما في الحالة الأولى ، تحتاج إلى تقليل جميع النوافذ المفتوحة (نحن لا نأخذ في الاعتبار أتباع القدر ، الذين لديهم نافذة سوليتير واحدة مفتوحة على جهاز العمل الخاص بهم). بالمناسبة ، هل يعرف المستخدمون مكان النقر لتصغير جميع النوافذ؟ هذا صحيح ، إصبع في عين المسؤول.

يشير الغطاء أيضًا إلى أن كلا الطريقتين الموصوفتين أعلاه لهما العيب الرئيسي المتمثل في مشاركة المستخدم في الحصول على المعلومات ، والتي يمكن أن تكون أعمى وغبيًا وكذبة بشكل عام.
لن أفكر في خيار تحسين محو الأمية الحاسوبية ، عندما يعرف الجميع مكان البحث في Windows عن اسم أجهزتهم: إنه شيء نبيل ، ولكنه صعب للغاية. وإذا كان للشركة معدل دوران للموظفين ، فسيكون ذلك كارثيًا تمامًا. ماذا يمكنني أن أقول ، في معظم الحالات لا يتذكرون حتى معلومات تسجيل الدخول الخاصة بهم.

سكبت روحي ، والآن إلى هذه النقطة.
تم أخذ فكرة Khabrovchanin كأساس متوسط من هذا المقال.
جوهر الفكرة هو أنه عندما يقوم المستخدم بتسجيل الدخول إلى Windows ، يقوم البرنامج النصي لتسجيل الدخول بإدخال المعلومات الضرورية (الوقت واسم الجهاز) في سمة معينة لحساب المستخدم. وعند الخروج من النظام ، يقوم بتنفيذ برنامج نصي لتسجيل الخروج مشابه.

أعجبتني الفكرة نفسها ، لكن شيئًا ما لم يناسبني في التنفيذ.

  1. يتم تطبيق نهج المجموعة ، الذي يحدد البرامج النصية لتسجيل الدخول وتسجيل الخروج للمستخدمين ، على المجال بأكمله ، لذلك سيتم تشغيل البرامج النصية على أي جهاز يقوم المستخدمون بتسجيل الدخول إليه. إذا كنت تستخدم حلولًا طرفية جنبًا إلى جنب مع محطات العمل (على سبيل المثال ، منتجات Microsoft RDS أو Citrix) ، فسيكون هذا الأسلوب غير مريح.
  2. يتم إدخال البيانات في سمة القسم لحساب المستخدم ، والذي يمتلك المستخدم القياسي حق الوصول للقراءة فقط. بالإضافة إلى سمة حساب المستخدم ، يقوم البرنامج النصي أيضًا بتعديل سمة قسم حساب الكمبيوتر ، والتي لا يمكن للمستخدمين تغييرها افتراضيًا أيضًا. لذلك ، لكي يعمل الحل ، يقترح المؤلف تغيير إعدادات الأمان الافتراضية لكائنات AD.
  3. يعتمد تنسيق التاريخ على إعدادات الترجمة على الجهاز المستهدف ، لذلك يمكننا الحصول على 10 نوفمبر 2018 14:53 من جهاز واحد و 11/10/18 2:53 مساءً من الجهاز الآخر

للقضاء على أوجه القصور هذه ، تم القيام بما يلي.

  1. لا يرتبط كائن نهج المجموعة (GPO) بمجال ، ولكن بوحدة تنظيمية بها أجهزة (أقوم بفصل المستخدمين والآلات إلى وحدات تنظيمية مختلفة وتقديم المشورة للآخرين). في نفس الوقت ، ل وضع معالجة سياسة الاسترجاع تم تعيين الوضع دمج.
  2. سيقوم البرنامج النصي فقط بكتابة البيانات إلى حساب المستخدم في السمة معلومات، والتي يمكن للمستخدم تغييرها بشكل مستقل لحسابه.
  3. تم تغيير جزء من التعليمات البرمجية التي تولد قيمة سمة

تبدو البرامج النصية الآن كما يلي:
SaveLogonInfoToAdUserAttrib.vbs

On Error Resume Next
Set wshShell = CreateObject("WScript.Shell")
strComputerName = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
Set adsinfo = CreateObject("ADSystemInfo")
Set oUser = GetObject("LDAP://" & adsinfo.UserName)
strMonth = Month(Now())
If Len(strMonth) < 2 then
  strMonth = "0" & strMonth
End If
strDay = Day(Now())
If Len(strDay) < 2 then
  strDay = "0" & strDay
End If
strTime = FormatDateTime(Now(),vbLongTime)
If Len(strTime) < 8 then
  strTime = "0" & strTime
End If
strTimeStamp = Year(Now()) & "/" & strMonth & "/" & strDay & " " & strTime
oUser.put "info", strTimeStamp & " <logon>" & " @ " & strComputerName
oUser.Setinfo

SaveLogoffInfoToAdUserAttrib.vbs

On Error Resume Next
Set wshShell = CreateObject("WScript.Shell")
strComputerName = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
Set adsinfo = CreateObject("ADSystemInfo")
Set oUser = GetObject("LDAP://" & adsinfo.UserName)
strMonth = Month(Now())
If Len(strMonth) < 2 then
  strMonth = "0" & strMonth
End If
strDay = Day(Now())
If Len(strDay) < 2 then
  strDay = "0" & strDay
End If
strTime = FormatDateTime(Now(),vbLongTime)
If Len(strTime) < 8 then
  strTime = "0" & strTime
End If
strTimeStamp = Year(Now()) & "/" & strMonth & "/" & strDay & " " & strTime
oUser.put "info", strTimeStamp & " <logoff>" & " @ " & strComputerName
oUser.Setinfo

كل من يجد جميع الاختلافات بين البرنامج النصي لتسجيل الدخول وتسجيل الخروج أولاً سيحصل على علامة زائد في الكرمة. 🙂
أيضًا ، للحصول على معلومات مرئية ، تم إنشاء مثل هذا البرنامج النصي الصغير PS:
الحصول على UsersByPCsInfo.ps1

$OU = "OU=MyUsers,DC=mydomain,DC=com"
Get-ADUser -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

إجمالاً ، كل شيء مهيأ لواحد أو اثنين أو ثلاثة:

  1. إنشاء كائن نهج المجموعة بالإعدادات اللازمة وربطه بالقسم بمحطات عمل المستخدم:
    Windows: اكتشف من قام بتسجيل الدخول وأين
  2. دعنا نذهب لشرب الشاي (إذا كان AD مع عدد كبير من المستخدمين ، فأنت بحاجة إلى الكثير من الشاي
  3. قم بتشغيل البرنامج النصي PS واحصل على النتيجة:
    Windows: اكتشف من قام بتسجيل الدخول وأين
    يوجد في الجزء العلوي من النافذة مرشح مناسب يمكنك من خلاله تحديد البيانات حسب قيم حقل واحد أو أكثر. يؤدي النقر فوق أعمدة الجدول إلى فرز السجلات حسب قيم الحقول المقابلة.

يمكننا "تغليف" حلنا بشكل جميل.
Windows: اكتشف من قام بتسجيل الدخول وأين
للقيام بذلك ، دعنا نضيف اختصارًا لتشغيل البرنامج النصي لمتخصصي الدعم الفني ، الذين سيكون لديهم شيء مثل هذا في حقل "الكائن":
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

إذا كان هناك الكثير من موظفي الدعم الفني ، فيمكنك توزيع الملصق باستخدام GPP.

بعض الملاحظات الأخيرة.

  • يجب أن يكون الجهاز الذي يتم تشغيل البرنامج النصي PS منه مثبتًا عليه وحدة Active Directory لـ PowerShell (لهذا ، يكفي إضافة أدوات إدارة AD في مكونات Windows).
  • افتراضيًا ، لا يمكن للمستخدم تعديل معظم سمات حسابه. ضع ذلك في الاعتبار إذا قررت استخدام سمة أخرى غير معلومات.
  • أبلغ جميع الزملاء المعنيين عن السمة التي ستستخدمها. على سبيل المثال ، نفس الشيء معلومات يُستخدم لإضافة ملاحظات بشكل تفاعلي إلى علبة بريد المستخدم في لوحة إدارة Exchange Server ويمكن لأي شخص الكتابة فوقها بسهولة ، أو أن يحزن عندما يقوم البرنامج النصي بالكتابة فوق المعلومات التي أضافها.
  • إذا كان لديك العديد من مواقع Active Directory ، فقم بالسماح بتأخير النسخ المتماثل. على سبيل المثال ، إذا كنت ترغب في الحصول على معلومات محدثة حول المستخدمين من موقع AD A ، وقمت بتشغيل البرنامج النصي من جهاز من موقع AD B ، فيمكنك القيام بذلك:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

    DCfromSite - اسم وحدة تحكم المجال للموقع أ (بشكل افتراضي ، يتصل Get-AdUser cmdlet بأقرب وحدة تحكم بالمجال)

Windows: اكتشف من قام بتسجيل الدخول وأين

مصدر الصورة

سأكون ممتنًا لو أمكنك إكمال الاستبيان القصير أدناه.

يمكن للمستخدمين المسجلين فقط المشاركة في الاستطلاع. تسجيل الدخول، من فضلك.

ماذا تستخدم؟

  • bginfo ، معلومات سطح المكتب وما إلى ذلك. (برنامج مجاني)

  • نظائرها المدفوعة من bginfo

  • سأفعل كما في المقال

  • غير مناسب لأن أستخدم VDI / RDS وما إلى ذلك.

  • لم أستخدم أي شيء بعد ، لكني أفكر

  • لست بحاجة لجمع مثل هذه البيانات

  • أخرى (مشاركة في التعليقات)

صوت 112 مستخدمين. امتنع 39 مستخدما عن التصويت.

المصدر: www.habr.com

إضافة تعليق