اذهب إلى المحتوى

حل مشكلة انتهاء صلاحية كلمة المرور لمستخدمي خدمة Active Directory


Hassan Hedr

يُعد تاريخ انتهاء صلاحية كلمة المرور الخاصة بمستخدمي نطاق خدمة Active Directory أكثر المشاكل شيوعًا، إذ يتعامل المستخدمون مع العديد من كلمات المرور، مما يؤدي إلى نسيان إعادة تعيين كلمات مرور جديدة قبل انتهاء صلاحيتها.

Registration-300x200.jpg

فما الذي يحدث عندما تنتهي صلاحية كلمة مرور في خدمة Active Directory؟

لن يُقفل الحساب، ولكن على صاحبه تغيير كلمة المرور كي يتمكن من الوصول لموارد النطاق مجددًا، ويمكن للمستخدمين أو في غالب الأحيان مسؤول إدارة النطاق في خدمة Active Directory التعامل مع هذه الإزعاجات من خلال الحصول على معلومات حول تاريخ انتهاء صلاحية حساب المستخدم ومعلومات هامةٍ أخرى.

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

استخدام الأمر Net User للتحقق من تاريخ انتهاء صلاحية كلمة المرور

من الطرق البسيطة لمعرفة متى تنتهي صلاحية كلمة مرور مستخدم Active Directory هي استخدام الأمر Net User، وهو جزءٌ من أوامر "net commands"، التي تسمح بإضافة أو إزالة أو تعديل حساب مستخدم ضمن جهاز الحاسوب.

لتنفيذ الأمر "net user"، لا بُدّ من فتح واجهة الطرفية "cmd" على ويندوز على النحو الآتي.

أولًا، اذهب لحقل البحث ضمن قائمة ابدأ واكتب "cmd"، أو يمكنك الضغط على شعار ويندوز مع المفتاح "R" لفتح أداة Run، ثم اكتب "cmd".

ثانيًا، ضمن نافذة طرفية الأوامر، نفِّذ الأمر "net user" مع إضافة المعاملات التالية:

net user [username] [/DOMAIN]

إذ أن:

  • [username]: يحدد اسم حساب المستخدم.
  • [DOMAIN/]: يعرض معلومات عن حساب اسم المستخدم ضمن متحكم نطاق معين.
  • لمعرفة المزيد حول استخدامات الأمر يمكنك تنفيذ الأمر ?/ net user كما هو موضح في الصورة التالية.

net-user-command.png

توضح الصورة التالية مثالًا عن خرج الأمر السابق؛ فمثلًا عند تنفيذ الأمر ”net user test01 /TEST.local” يمكننا عرض معلومات عن كلمة المرور للمستخدم test01 ضمن نطاق المحلي TEST.local.

net-user-test01domain.png

نلاحظ ضمن المعلومات الظاهرة تاريخ انتهاء صلاحية كلمة المرور، ويمكن ملاحظة معلومات مفيدة أخرى، مثل توقيت آخر تعيينٍ لكلمة المرور، ومتى يمكن تغييرها، وهل يمكن للمستخدمين تغيير كلمات المرور، وغيرها من المعلومات.

قائمة بتواريخ انتهاء صلاحية كلمات المرور لجميع مستخدمي Active Directory

يفيد الأمر "net user" فقط في حالة استخراج معلوماتٍ عن مستخدمٍ ما؛ ولكن في حال أردنا استخراج معلوماتٍ عن حسابات وكلمات المرور لجميع المستخدمين ضمن Active Directory، سنحتاج لتنفيذ سطر من شيفرة PowerShell.

توجد سمةٌ مبنيةٌ ضمن Active Directory تُسمى "msDS-UserPasswordExpiryTimeComputed"، وهي تمكننا من الحصول على الحسابات ضمن Active Directory وتوقيت انتهاء الصلاحية لكلمات المرور الخاصة بهم.

قبل تنفيذ الشيفرة، لا بُدّ من التأكُّد بأن وحدة Active Directory لسطر أوامر PowerShell مثبتةٌ وقيد التنفيذ، إذ تمكِّننا تلك الوحدة من إظهار معلومات قيِّمة مخزنةٍ ضمن كائنات Active Directory، تتضمن إعدادات كلمة المرور وتاريخ انتهاء صلاحية وتوقيت آخر تعديل وغيرها.

أولًا، نزِّل وثبِّت وحمِّل أدوات إدارة الخادم البعيد Remote Server Administration Tools -أو اختصارًا RSAT-، وفي حال لم يكن مثبتًا، يمكنك اتباع دليل Microsoft التقني.

ثانيًا، تأكد من عمل ميزة PowerShell، ثم ضغط على مفتاح شعار ويندوز مع المفتاح "R" لفتح نافذة أداة Run، ثم اكتب "Windows PowerShell".

ثالثًا، يمكنك استخدام السمة "msDS-UserPasswordExpiryTimeComputed" للحصول على تاريخ انتهاء صلاحية كلمة المرور لمستخدم ما على النحو التالي:

Get-ADUser -Identity UserName -Properties msDS-UserPasswordExpiryTimeComputed).'msDS-UserPasswordExpiryTimeComputed'

رابعًا، لا يمكن قراءة نتيجة خرج من الأمر السابق، لذلك ستحتاج لإضافة السطر التالي من أجل تحويلها لصيغةٍ قابلةٍ للقراءة:

{[datetime]::FromFileTime($_.”msDS-UserPasswordExpiryTimeComputed”)}

list-user-password-expiration-powershell.jpg

  • يمكن تنفيذ نفس السمة msDS-UserPasswordExpiryTimeComputed مع إضافة تصفية filter صحيحة للحصول على قائمة بحسابات وكلمات مرور وتواريخ انتهاء صلاحية مستخدمي Active Directory على النحو التالي:
Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}

expiry-date-ad-user.jpg

وسائل وأدوات

بعد الحصول على تواريخ انتهاء صلاحية لحسابات المستخدمين، يمكنك الاستعانة بزوجٍ من الأدوات المجانية التي تساعد في إدارة حسابات المستخدمين وأجهزة الحواسيب ضمن Active Directory.

إدارة المستخدمين وإبقاء نطاق Active Directory نظيفا

تأتي الأداة المجانية حزمة إدارة SolarWinds لخدمة Active Directory بثلاث أدوات تساعد في إدارة حسابات المستخدمين وأجهزة الحاسوب ضمن Active Directory، إذ يمكن باستخدام هذه الحزمة إيجاد وحذف حسابات المستخدمين وأجهزة الحواسيب غير الفعالة.

SolarWinds-Active-Directory-Admin-Tools-Bundle.jpg

تتألف الحزمة من الأدوات التالية:

  • أداة إزالة حسابات المستخدمين غير الفعالة: وهي أداةٌ للبحث عن الحسابات التي لم تُستخدم، أو يُسجَّل الدخول إليها، أو تلك الحسابات غير الفعالة منذ وقت طويل؛ كما تمكِّننا من تصدير قائمة بتلك الحسابات وإزالة جميع الحسابات غير الفعالة.
  • أداة إزالة أجهزة الحواسيب: وهي أداةٌ للبحث عن الأجهزة غير الفعالة، كما تمكِّننا من تصدير قائمةٍ بها وإزالتها.
  • أداة استيراد المستخدمين: وهي أداةٌ لإنشاء حساباتٍ للمستخدمين ضمن Active Directory عبر استيرادها من ملف CSV أو XLS، كما تمكِّننا أيضًا من إنشاء حسابات ضمن Active Directory وصندوق بريد Exchange معًا في ذات الوقت.

أتمتة إشعارات انتهاء صلاحية كلمة المرور للمستخدمين ضمن Active Directory

يوجد أداةٌ أخرى تُسمى مدقق Lepide Auditor تساعد في أتمتة إدارة كلمات المرور للحسابات عبر الحصول على معلومات عنها مباشرة من Active Directory، كما تولِّد تقريرًا وترسله للمستخدم لإبلاغه بأن صلاحية كلمة المرور الخاصة به على وشك الإنتهاء، إذ تأتي هذه الأداة مع ميزة تذكير مستخدمي Active Directory عند قرب انتهاء صلاحية كلمة المرور الخاصة بهم.

Lepide-Auditor-1024x520.jpg

الخاتمة

يوجد أسلوبان بسيطان للحصول على تاريخ انتهاء صلاحية كلمات المرور ضمن خدمة Active Directory؛ إذ يعتمد الأسلوب الأول على استخدام الأمر Net User، والثاني على سمة PowerShell:

  • يُستخدم الأسلوب المعتمد على الأمر Net User للحصول على تاريخ انتهاء صلاحية كلمة المرور لمستخدم ما، ومن أجل استخدام هذا الأسلوب، يجب الوصول إلى حساب مستخدم Active Directory، أو يمكن للمستخدم نفسه تنفيذ ذلك الأمر على جهازه.
  • أمر PowerShell أقوى وأسهل في الاستخدام، فيكفي فقط تثبيت وحدة PowerShell لخدمة Active Directory ويمكنك بعدها نسخ ولصق سطر شيفرة واحد للحصول على قائمةٍ كاملةٍ بالمستخدمين وتاريخ انتهاء صلاحية كلمات المرور لهم.

يوجد أدواتٌ أخرى تساعدنا على إبقاء Active Directory نظيفًا وتؤتمت عملية إنشاء حسابات المستخدمين، مثل أداة حزمة إدارة SolarWinds لخدمة Active Directory.

يوجد أدواتٌ أخرى مدفوعة، مثل برمجية مدقق لبيد Lepide Auditor، التي تساعد على أتمتة إشعارات انتهاء صلاحية كلمة المرور.

أسئلة شائعة حول انتهاء صلاحية كلمة المرور

هل يمكن لخدمة Active Directory إرسال بريد إلكتروني عند انتهاء صلاحية كلمة المرور؟

يمكن إعداد خدمة Active Directory لإشعار المستخدمين عند قرب انتهاء صلاحية كلمات المرور الخاصة بهم، لكن سيظهر هذا الإشعار ضمن النظام وفقط عند دخول المستخدم إلى شبكة الشركة، ومن الممكن استخدام نص برمجي ضمن PowerShell للتحقُّق من كلمات المرور التي هي على وشك الانتهاء وتوليد بريدٍ إلكتروني لكل مستخدم، ولكن لا يوجد إجرائيةٌ مؤتمتةٌ لهذا الأمر ضمن خدمة Active Directory.

كيف يمكننا توليد انتهاء صلاحية كلمة مرور مستخدم خدمة Active Directory في سطر أوامر PowerShell؟

يمكن الحصول على قائمة بحسابات المستخدمين وتواريخ انتهاء الصلاحية عبر تنفيذ النص البرمجي التالي ضمن PowerShell:

Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}

هل من الممكن رؤية كلمة المرور المستخدم ضمن Active Directory؟

لا يمكن حتى للمسؤول رؤية كلمة المرور لحساب المستخدم، ولكن يمكنه إعادة تعيينها؛ وهذا يمكِّن المسؤول المحتال من استعادة التحكم بحسابٍ ما.

ترجمة -وبتصرف- للمقال "Find Password Expiration Date for Active Directory Users [ PowerShell & Free Tools]‎" لصاحبه Marc Wilson.

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...