يمكن الاستعلام عن Active Directory من سطر الأوامر باستخدام أوامر PowerShell أو dsquery القديمة.

أوامر PowerShell Active Directory

قائمة بجميع المستخدمين:

الأمر
Get-ADUser -Filter *

ابحث عن مستخدم محدد:

الأمر
Get-ADUser -Identity "username"

بحث المستخدم بالاسم:

الأمر
Get-ADUser -Filter "Name -like '*John*'"

قائمة بجميع أجهزة الكمبيوتر:

الأمر
Get-ADComputer -Filter *

قائمة بجميع المجموعات:

الأمر
Get-ADGroup -Filter *

الحصول على معلومات المجال:

الأمر
Get-ADDomain

احصل على وحدات تحكم المجال:

الأمر
Get-ADDomainController -Filter *

تمكين وحدة PowerShell AD

إذا لم يعمل Get-ADUser، قم بتمكين الوحدة:

خادم ويندوز:

الأمر
Import-Module ActiveDirectory

ويندوز 10/11: قم بتثبيت RSAT (أدوات إدارة الخادم البعيد) من الإعدادات > التطبيقات > الميزات الاختيارية.

ثم اركض:

الأمر
Import-Module ActiveDirectory

أوامر DSQUERY القديمة

يعمل بدون وحدة PowerShell على الأجهزة المرتبطة بالمجال.

البحث عن كافة المستخدمين:

الأمر
dsquery user

ابحث عن المستخدم بالاسم:

الأمر
dsquery user -name "John*"

البحث عن جميع أجهزة الكمبيوتر:

الأمر
dsquery computer

ابحث عن جميع المجموعات:

الأمر
dsquery group

البحث عن الحسابات المعطلة:

الأمر
dsquery user -disabled

البحث عن أجهزة الكمبيوتر غير النشطة (90 يومًا):

الأمر
dsquery computer -inactive 12

12 أسبوع = 90 يومًا تقريبًا.

احصل على معلومات مفصلة للمستخدم

PowerShell - إظهار كافة الخصائص:

الأمر
Get-ADUser -Identity "username" -Properties *

DSGET (قديم):

الأمر
dsquery user -name "username" | dsget user -display -email -mobile

ابحث عن عضويات مجموعة المستخدم

بوويرشيل:

الأمر
Get-ADPrincipalGroupMembership -Identity "username"

DSGET:

الأمر
dsget user "CN=Username,OU=Users,DC=domain,DC=com" -memberof

ابحث عن أعضاء المجموعة

بوويرشيل:

الأمر
Get-ADGroupMember -Identity "GroupName"

DSGET:

الأمر
dsget group "CN=GroupName,OU=Groups,DC=domain,DC=com" -members

تحقق مما إذا كان المستخدم مغلقًا

بوويرشيل:

الأمر
Get-ADUser -Identity "username" -Properties LockedOut | Select-Object Name,LockedOut

فتح المستخدم:

الأمر
Unlock-ADAccount -Identity "username"

إعادة تعيين كلمة مرور المستخدم

الأمر
Set-ADAccountPassword -Identity "username" -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "NewPassword123!" -Force)

فرض تغيير كلمة المرور عند تسجيل الدخول التالي:

الأمر
Set-ADUser -Identity "username" -ChangePasswordAtLogon $true

البحث عن الكمبيوتر

بالاسم:

الأمر
Get-ADComputer -Filter "Name -like '*DESKTOP*'"

حسب نظام التشغيل:

الأمر
Get-ADComputer -Filter "OperatingSystem -like '*Windows 11*'" -Properties OperatingSystem

تصدير النتائج إلى ملف CSV

بوويرشيل:

الأمر
Get-ADUser -Filter * -Properties DisplayName,EmailAddress | Export-Csv users.csv -NoTypeInformation

إنشاء ملف CSV ببيانات المستخدم.

المرشحات المشتركة

المستخدمون الذين تم إنشاؤهم في آخر 30 يومًا:

الأمر
$date = (Get-Date).AddDays(-30)
Get-ADUser -Filter "Created -gt '$date'" -Properties Created

المستخدمون لم يسجلوا الدخول مطلقًا:

الأمر
Get-ADUser -Filter "LastLogonDate -notlike '*'" -Properties LastLogonDate

عدم تسجيل الدخول لأجهزة الكمبيوتر لمدة 90 يومًا:

الأمر
$date = (Get-Date).AddDays(-90)
Get-ADComputer -Filter "LastLogonDate -lt '$date'" -Properties LastLogonDate

استكشاف الأخطاء وإصلاحها

"لم يتم التعرف على Get-ADUser": استيراد وحدة ActiveDirectory أو تثبيت RSAT.

"غير قادر على الاتصال بالخادم": ليس على شبكة المجال أو وحدة تحكم المجال غير قابلة للوصول.

"تم رفض الوصول": بحاجة إلى مسؤول المجال أو أذونات الإعلان المناسبة.

DSQUERY لا يُرجع شيئًا: التحقق من بناء الجملة، والتأكد من الانضمام إلى المجال، والتحقق من الاتصال بالشبكة.

خلاصة القول

بوويرشيل (حديث):

الأمر
Get-ADUser -Filter * | Find users
Get-ADComputer -Filter * | Find computers
Get-ADGroup -Filter * | Find groups

DSQUERY (قديم):

الأمر
dsquery user | Find users
dsquery computer | Find computers
dsquery group | Find groups

يعد PowerShell أكثر قوة ولكنه يتطلب وحدة ActiveDirectory. يعمل DSQUERY على الأجهزة المرتبطة بالمجال دون الحاجة إلى إعداد إضافي.

كلاهما يتطلب اتصالاً بشبكة المجال والأذونات المناسبة.