ويندوز: معرفة من الذي قام بتسجيل الدخول حيث


- أوه ، لا شيء يعمل لي ، ساعد!
- لا تقلق ، الآن سنصلح كل شيء. ما هو اسم الكمبيوتر ...
(كلاسيكي من النوع من المكالمات إلى الدعم الفني)

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


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

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

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

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

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


لمعالجة هذه العيوب ، تم القيام بما يلي.
  1. لا يرتبط GPO بالمجال ، ولكن بوحدة OU مع الأجهزة (أقوم بفصل المستخدمين والأجهزة عن طريق OUs مختلفة وتقديم المشورة للآخرين). في الوقت نفسه ، يتم تعيين وضع معالجة نهج الاسترجاع إلى دمج الوضع.
  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. إنشاء GPO بالإعدادات اللازمة وربطها بالوحدة مع محطات عمل المستخدم:

  2. اذهب لشرب الشاي (إذا كان هناك م مع عدد كبير من المستخدمين ، فأنت بحاجة إلى الكثير من الشاي :)
  3. PS- النصي يبدأ وحصلنا على النتيجة:

    يوجد في الجزء العلوي من النافذة مرشح مناسب يمكنك من خلاله تحديد البيانات حسب قيم حقل واحد أو أكثر. يؤدي النقر فوق أعمدة الجدول إلى فرز السجلات حسب قيم الحقول المقابلة.


يمكنك جميل "حزمة" حلنا.

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

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

بعض التعليقات في النهاية.
  • على الجهاز من حيث يتم تشغيل البرنامج النصي PS ، يجب تثبيت وحدة Active Directory لـ PowerShell (لهذا يكفي إضافة أدوات إدارة AD في مكونات Windows).
  • لا يمكن للمستخدم تعديل معظم سمات حسابه افتراضيًا. ضع ذلك في الاعتبار إذا قررت استخدام سمة أخرى غير المعلومات .
  • أبلغ جميع الزملاء المشاركين حول السمة التي ستستخدمها. على سبيل المثال ، يتم استخدام نفس المعلومات لإضافة ملاحظات بشكل تفاعلي إلى صندوق بريد المستخدم في منطقة إدارة Exchange Server ويمكن لأي شخص الكتابة فوقه بسهولة ، أو يكون محزنًا عندما تؤدي المعلومات التي يضيفها إلى استبدال البرنامج النصي الخاص بك.
  • إذا كان لديك العديد من مواقع Active Directory ، فاضبط على تأخير النسخ المتماثل. على سبيل المثال ، إذا كنت ترغب في الحصول على معلومات محدثة حول المستخدمين من موقع AD ، وتشغيل البرنامج النصي من الجهاز من موقع AD ، فيمكنك القيام بذلك:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title " " -Wait

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



مصدر الصورة

سأكون ممتنا إذا نجحت في إجراء مسح قصير أدناه.

Source: https://habr.com/ru/post/ar463579/


All Articles