إنشاء تقارير وحدة التنظيم في الدليل النشط باستخدام PowerShell. وحدة التنظيم (OU) هي حاوية في الدليل النشط (AD) حيث يمكن تخزين المستخدمين، والمجموعات، والكمبيوترات، ووحدات التنظيم الأخرى. يمكن لكل نطاق AD أن يمتلك هرمية وحدته التنظيمية. ستغطي هذه المقالة إدارة OU وكيفية استخدام نصوص Windows PowerShell لنقل، وإنشاء، وحذف، وإنشاء تقارير OU في AD وربط وفرض سياسة المجموعة على OU.
إنشاء تقارير وحدة التنظيم في الدليل النشط باستخدام PowerShell
المتطلبات المسبقة إذا كنا نرغب في متابعة الأمثلة البرمجية في هذه المقالة، سنحتاج إلى تثبيت المكونات المطلوبة مسبقا:
إذا كنا نرغب في متابعة نصوص الأمثلة الواردة في هذه المقالة، فسنحتاج إلى تثبيت المكونات المطلوبة مسبقًا:
-
مستوى الوظيفة الإضافية
–
ويندوز
سيرفر 2016. -
أدوات إدارة الخادم البعيد (RSAT) للنظام الفعال المجال
تثبيتها على جهاز العمل الخاص بك المنضم إلى المجال. -
إن أحدث باورشيل، أو على الأقل
باورشيل 5.x
وما فوق مطلوبة لتنفيذ البرامج النصية.
حسنًا، كيفية إنشاء تقارير مجلدات النظام الفعال المجال باستخدام باورشيل؟ دعونا نكتشف.
فهم أوامر الوحدة التنظيمية
A Microsoft Active Directory domain container that can hold users, groups, and computers is an organizational unit (OU). It is the smallest unit to which a Windows system administrator can assign a Group Policy setting or account permission. An organizational unit may contain multiple OUs, but each attribute within the containing OU must be distinct.
الكائنات من المجالات الأخرى لا يمكن أن توجد داخل الوحدات التنظيمية لـActive Directory. سيتم تغطية الأوامر الأساسية لإدارة الوحدات التنظيمية في الأقسام التالية.
اقرأ أيضًانشر أداة مراقبة لـ Azure AD
إنشاء وحدات تنظيمية في Active Directory باستخدام PowerShell
يمكننا إنشاء وحدة تنظيمية جديدة في وحدة التحكم باستخدام New-ADOrganizationalUnit وتحديد اسم كائن OU الجديد. Windows PowerShell سينشئ بشكل افتراضي Organizational Unit في جذر المجال. على سبيل المثال، الأمر التالي سينشئ OU باسم IT على جهاز التحكم بالمجال (DC):
New-ADOrganizationalUnit “IT”
إذا احتجنا إلى مسار LDAP لـ OU مختلف، استخدم -Path لتحديد اسمه المميز (DN):
New-ADOrganizationalUnit “IT” –Path “OU=Users,DC=InfraSOS,DC=com”
تحريك OU في Active Directory باستخدام PowerShell
إذا احتجنا إلى نقل OU إلى موقع آخر، استخدم الأمر Move-ADObject في cmdlet. من المهم التنويه بأنه لا ينبغي حماية الOU المستهدفة من الحذف العرضي. إذا كان الأمر كذلك، استخدم الأمر التالي لإزالة الحماية:
Set-ADOrganizationalUnit -Identity "OU=IT,OU=Users,DC=InfraSOS,DC=Com" -ProtectedFromAccidentalDeletion $False
يمكننا الآن نقل OU إلى موقع آخر:
Move-ADObject -Identity "OU=Regions,OU=Managers,DC=InfraSOS,DC=Com" -TargetPath "OU=IT,DC=InfraSOS,DC=Com"
إعادة تسمية OU في Active Directory باستخدام PowerShell
استخدم الأمر Rename-ADObject في cmdlet لإعادة تسمية وحدة التنظيم. يحدد معامل الهوية الكائن AD الذي يجب إعادة تسميته ويتطلب إما DN أو GUID. على سبيل المثال، يغير هذا الأمر اسم OU IT إلى Marketing:
Rename-ADObject -Identity "OU=Regions,OU=IT,DC=InfraSOS,DC=COM" -NewName Marketing
يمكننا أيضًا استخدام Get-ADOrganizationalUnit cmdlet مع -Filter المعامل، والذي لا يتطلب المسار الكامل LDAP إلى OU. ومع ذلك، سيبحث هذا الأمر في النظام الفرعي الكامل، وسيطبق سيناريو البرنامج النصي على جميع وحدات التنظيم التي تحتوي على مصطلح البحث في أسمائها:
Get-ADOrganizationalUnit -Filter "Name -eq 'Zones'" | Rename-ADObject -NewName Area
سنناقش المزيد من أوامر الحصول على OU بمجرد بدء إنشاء التقارير.
تطبيق سياسة المجموعة على OU في Active Directory باستخدام PowerShell
لتعيين سياسة جمعية إلى وحدة تنظيمية، يمكننا استخدام New-GPLink الأمر، الذي يربط كائن سياسة جمعية (GPO) محدد ووحدة التنظيمية. بالإضافة إلى ذلك، يمكننا تحديد أي من الخصائص التالية للرابط:
- تمكين – إذا كان للرابط تمكين الحالة، يتم تطبيق إعدادات GPO المعالجة عندما يتم تنفيذ السياسة للموقع، المجال، و OU.
- مفرط – إذا كان للرابط مفرط الحالة، لا يمكننا حظر OU في حاوية أدنى مستوى.
- الترتيب – الترتيب الحالة تحدد الأولوية لإعدادات GPO.
على سبيل المثال، يربط الأمر التالي GPO المحدد بـ Block بوحدة التنظيمية IT مع تمكين الربط وفرضه:
New-GPLink -Name "Block" -Target "OU=Districts,OU=IT, DC=InfraSOS, DC=com" -LinkEnabled Yes -Enforced Yes
نقل المستخدمين والكمبيوترات إلى OU جديدة في AD باستخدام PowerShell
بعد أن أنشأنا وحدة تنظيمية واختياريًا ربطها بـ GPO، سنملأها بالمستخدمين والكمبيوترات. ال Move-ADObject الأمر في PowerShell ينقل أي كائن أو مجموعة من كائنات الدليل النشط إلى OU مختلفة. ال–Identity يشير المعلمة إلى أي كائن يجب أن يعيد التأريخ Active Directory كائن أو حاوية.
من المهم ملاحظة أنه يجب أن ندخل المسار الكامل LDAP للكائن أو SID؛ لا يمكننا استخدام SamAccountName الخاص به. يوضح المثال التالي كيفية تحريك مستخدم إلى OU IT:
Move-ADObject -Identity "CN=marion,CN=Users,DC=InfraSOS,DC=com" -TargetPath "OU=IT,OU=Users,DC=InfraSOS,DC=com"
استخدم البناء التركيبي الدقيق لتحريك الكمبيوتر الكائنات. على سبيل المثال، سينقل الأمر التالي الكمبيوتر DESKTOP-01 إلى حاوية الكمبيوترات:
Move-ADObject -Identity "CN=DESKTOP-01,OU=Computers,DC=InfraSOS,DC=com" -TargetPath "CN=Workstations,DC=InfraSOS,DC=com"
نقل الكمبيوترات والمستخدمين في AD إلى OU آخر
إذا كان لدينا قائمة معروفة مسبقًا للكائنات التي يجب نقلها، يمكننا حفظها كملف نصي ثم استيرادها إلى Active Directory. قم بإعداد قائمتك عن طريق إضافة كائن AD واحد في كل سطر. يجب أن يبدو الملف النصي الذي يحتوي على القائمة كشيء من هذا القبيل:

استخدم هذا البرنامج التعليمي PowerShell لنقل حسابات المستخدمين في AD المدرجة في ملف نصي:
$destOU = "OU=Users,OU=IT,DC=InfraSOS,DC=com"
$usersList = Get-Content -Path "C:\temp\users.txt"
$usersList | ForEach-Object {
$userName = (Get-ADUser -Identity $_.Name).distinguishedName
Move-ADObject -Identity $userName -TargetPath $destOU
}
لنقل حسابات الكمبيوتر في AD المدرجة في ملف نصي، استخدم البرنامج التعليمي PowerShell التالي:
$computers = Get-Content -Path "C:\Temp\Computers.txt"
$destOU = "OU=Computers,OU=IT,DC=InfraSOS,DC=com"
ForEach( $computer in $computers){
Get-ADComputer $computer |
Move-ADObject -TargetPath $destOU
}
اقرأ أيضًا تحقق من تقارير مجموعات Active Directory
إزالة وحدة تنظيمية من Active Directory باستخدام PowerShell
الRemove-ADOrganizationalUnit تعمل كومند لإزالة وحدة تنظيمية. ولكن، يجب ألا نحمي الوحدة التنظيمية من الحذف العرضي. باستخدام الGet-ADOrganizationalUnit وSet-ADOrganizationalUnit يمكننا إزالة الخيار للحذف العرضي من كل وحدة تنظيمية يحتوي اسمها على كلمة مناطق:
Get-ADOrganizationalUnit -filter "Name -eq 'Zones'" | Set-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $False
استخدم الأمر التالي لإزالة كل وحدة تنظيمية تحتوي على مناطق في اسمها من AD:
Get-ADOrganizationalUnit -filter "Name -eq 'Zones'" | Remove-ADOrganizationalUnit –Recursive
سيطلب منا النظام تأكيد الحذف:
لاحظ أن ال-Recursive يزيل الوحدة التنظيمية وجميع كائناتها الفرعية. سيحذف AD الكائنات الفرعية حتى لو كانت حماية من الحذف مفعلة لها.
اقرأ أيضًا استخدام أداة التقارير في Active Directory
إدارة وحدات المنظمة في AD
الحصول على قائمة بجميع OUs باستخدام PowerShell
سنستخدم Get-ADOrganizationalUnit الأمر. أولاً ، قم بفرزها حسب CanonicalName. تعرض هذه الأمر هيكل OU أسهل في القراءة.
Get-ADOrganizationalUnit -Properties CanonicalName -Filter * |
Sort-Object CanonicalName |
Format-Table CanonicalName, DistinguishedName
الآتي هو مثال الناتج في باورشيل عندما نقوم بتشغيل الأمر:
الناتج مع جميع OUs في AD قائمة رائعة. لكن كيف نعرف ما إذا كانت OU تحتوي على أي مستخدمين؟
اقرأ أيضًا راجع تقارير المجموعات في Active Directory
احصل على قائمة بجميع OUs، بما في ذلك عدد المستخدمين، باستخدام PowerShell
نحن نفضل استخدام PowerShell للحصول على قائمة بالوحدات التنظيمية، بما في ذلك عدد المستخدمين. هذا الأمر سيخبرنا إذا كانت هناك أي مستخدمين في OU.
Get-ADOrganizationalUnit -Properties CanonicalName -Filter * |
Sort-Object CanonicalName |
ForEach-Object {
[pscustomobject]@{
Name = Split-Path $_.CanonicalName -Leaf
CanonicalName = $_.CanonicalName
UserCount = @(Get-AdUser -Filter * -SearchBase $_.DistinguishedName -SearchScope OneLevel).Count
}
}
سيعرض الناتج مع خاصية عمود UserCount. إذا كانت قيمة خاصية UserCount هي صفر، فإن OU لا يحتوي على مستخدمين. لن تظهر إذا كانت OU تحتوي على كائن جهاز حاسوب. سيتحقق هذا الأمر فقط ويعرض عدد المستخدمين.
اقرأ أيضًا نشر تقارير مستخدم Office 365
تصدير OUs في AD إلى ملف CSV باستخدام PowerShell
نريد الآن تصدير قائمة الوحدات التنظيمية في AD التي رأيناها. لذا ستستخدم البرنامج النصي الذي سنقوم بتشغيله PowerShell للحصول على الوحدات التنظيمية وتصديرها إلى ملف نصي.
$results = Get-ADOrganizationalUnit -Properties CanonicalName -Filter * | Sort-Object CanonicalName |
ForEach-Object {
[pscustomobject]@{
Name = Split-Path $_.CanonicalName -Leaf
CanonicalName = $_.CanonicalName
UserCount = @(Get-AdUser -Filter * -SearchBase $_.DistinguishedName -SearchScope OneLevel).Count
}
}
$results | Out-File C:\export_OUs.txt -Encoding UTF8
إذا أردنا تصديرها إلى ملف CSV، فغيّر السطر الأخير إلى الأمر التالي:
$results | Export-Csv -Path C:\export_OUs.csv -NoTypeInformation -Encoding UTF8
أثناء تشغيل الأمر أعلاه، ابحث عن الملف المصدر في الموقع المحدد الموقع.
شكرًا لك على قراءة “إنشاء تقارير الكتلة النشطة للمجموعات المشتركة باستخدام باورشيل”. سننتهي الآن.
اقرأ أيضًا تحقق من أداة الإدارة المكتبية 365
خاتمة إنشاء تقارير الكتلة النشطة للمجموعات المشتركة باستخدام باورشيل
الآن بعد أن تعلمنا كيفية التحكم في الكتل النشطة في Active Directory باستخدام سِكربتات باورشيل، يمكننا تشغيل العديد من العمليات المتعلقة بإدارة الكتل النشطة إدارة وإنشاء تقارير وفقًا لذلك. يرجى التأكد من تمكين ميدان المهملات النشطة للمجموعات المشتركة قبل تجربة هذه الأوامر للتراجع عن أي حذف خاطئ بسهولة. من الذكي أيضًا تتبع جميع التغييرات في الوحدات التنظيمية الخاصة بك بعناية.
تحقق من محتوى باورشيل في مدونتنا هنا.
Source:
https://infrasos.com/create-active-directory-ou-reports-with-powershell/