إذا وصلت إلى هذه المرحلة متسائلاً عما إذا من المفيد تعلم كيفية تنفيذ أتمتة PowerShell دون أن تكون مسؤول النظام. فيما يتعلق بالأنظمة، دعني أخبرك بشيء: الإجابة عادةً ما تكون نعم قاطعة. على الرغم من أن العديد من الأدلة تركز على مهام إدارة الخوادم أو النطاقات أو الحوسبة السحابية للشركات، إلا أن PowerShell أداة رائعة لأتمتة المهام اليومية لفريقك وفتح آفاق جديدة في عالم الأعمال، حتى لو لم تكن تدير حاليًا Active Directory أو بنية تحتية معقدة.
وفي الوقت نفسه، صحيح أن تتجلى الإمكانات الحقيقية لـ PowerShell عند استخدامها في الأتمتة الجماعيةإدارة المستخدمين، ومعاملات Active Directory، والتحكم في الموارد في Microsoft 365 وAzure وPower Apps... لهذا السبب، سنرى في هذه المقالة ما يمكن فعله، وكيف يتم ذلك، وفي أي سيناريوهات يمكن أن يكون مفيدًا للغاية، سواء كنت مسؤولًا أو ترغب فقط في الارتقاء بإنتاجيتك إلى المستوى التالي.
هل استخدام PowerShell منطقي إذا لم تكن مسؤول النظام؟
يتساءل الكثيرون عما إذا كانوا سيتعاملون مع الخوادم أو النطاقات أو الشبكات، أم لا. قد لا يكون PowerShell مفيدًا في حياتك اليوميةومن الطبيعي أن تفكر هكذا عندما تتحدث معظم الأمثلة التي تراها عن غابات Active Directory، ووحدات تحكم المجال، وتراخيص Microsoft 365، أو عمليات النشر على Azure.
ومع ذلك، حتى كمستخدم "عادي" يمكنك أتمتة المهام المتكررةتنظيف الملفات المؤقتة، والتحقق من استخدام الذاكرة أو القرص، وتشغيل التطبيقات بمعلمات مختلفة، وإنشاء نسخ احتياطية بسيطة، ومعالجة ملفات CSV، وما إلى ذلك، وجدولة هذه المهام باستخدام جدولة المهام لأتمتة الصيانة.
ومع ذلك، فإنّ نجاحه الحقيقي يظهر عند استخدامه لـ إدارة البنية التحتية لشركة مايكروسوفتActive Directory، Azure، Microsoft 365، Power Apps، Dynamics 365، إلخ. هذا هو المكان الذي تدخل فيه وحدات الإدارة وأوامر cmdlets التي سنراها أدناه حيز التنفيذ، حيث يمكنك توفير مئات الساعات من العمل اليدوي.
أوامر PowerShell لأتمتة منصات Microsoft
يحتوي PowerShell على العديد من مكتبات أوامر cmdlet المتخصصة لكل خدمة من خدمات مايكروسوفت. هذه المكتبات عبارة عن وحدات يتم تثبيتها وتحميلها في جلسة PowerShell الخاصة بك لتمكينك من تشغيل أوامر خاصة بالمنصة.
تطبيقات باور: أتمتة البيئات والتطبيقات والاتصالات
تم تصميم أوامر Power Apps بحيث يمكن لكل من المطورين والمسؤولين إدارة البيئات والتطبيقات وسير العمل دون الاعتماد دائمًا على بوابة الويب. يمكنك من خلالها سرد البيئات، وعرض التطبيقات، ومراجعة الموصلات والاتصالات، أو إنشاء سير العمل الحكومة تحدد من يستطيع إنشاء ماذا وأين.
على سبيل المثال، باستخدام أوامر مثل الحصول على بيئة PowerAppAdmin يمكنك الحصول على قائمة كاملة بالبيئات، والاطلاع على اسمها المعروض، ومعرّفها الفريد العالمي (GUID)، وغيرها من التفاصيل الأساسية لأتمتة العمليات لاحقًا. وهذا أمر بالغ الأهمية عند الحاجة إلى العمل مع البرامج النصية التي تعمل على بيئة محددة.
مايكروسوفت 365: أتمتة موجهة للمستخدم
في بيئة مايكروسوفت 365، يتم استخدام PowerShell لـ أتمتة المهام المتعلقة بالمستخدمين والتراخيصبدءًا من تخصيص التراخيص أو إلغائها بشكل جماعي، ومراجعة المستخدمين الذين لديهم خطة محددة، وتعطيل الحسابات، وتكوين الخصائص، وما إلى ذلك، وإذا كنت بحاجة إلى معلومات أكثر تفصيلًا، يمكنك الرجوع إلى الأدلة الخاصة بـ إدارة المستخدمين من PowerShell.
يتيح لك استخدام أوامر Microsoft 365 cmdlets، على سبيل المثال، إدارة عمليات التوظيف الجديدة وإنهاء الخدمات عند دخول الموظفين إلى المؤسسة أو مغادرتهم لها، دون الحاجة إلى التنقل بشكل مطوّل عبر بوابة الإدارة. يُعدّ هذا الأمر مفيدًا للغاية عند التعامل مع مئات المستخدمين والسياسات التي تتطلب تطبيقًا دقيقًا.
Dynamics 365 و Dataverse
في البيئات التي تستخدم قواعد بيانات Dataverse، توفر وحدات PowerShell الخاصة بـ Dynamics 365 التوافق مع واجهة برمجة تطبيقات الإدارة عبر الإنترنت ومع تطبيق الحلول الآلية في بيئات مختلفة.
وهذا يعني أنه يمكنك نشر الحلول، ونقل المكونات بين البيئات، وإدارة التكوينات أو تشغيل المهام المتكررة دون الحاجة إلى القيام بذلك يدويًا في كل مرة. إنه أسلوب مثالي للسيناريوهات التي تضم منظمات متعددة، وبيئات اختبار، وبيئات إنتاج.
أزور باورشيل
تتيح مكتبة Azure PowerShell لأي مكون من مكونات Azure أن يكون جزءًا من الحل الآليالأجهزة الافتراضية والشبكات والتخزين والبوابات وما إلى ذلك. كما يسمح لك بدمج الموارد المحلية، مثل بوابة التطبيقات، في تكوين البنية التحتية العالمية الخاصة بك.
يُعد هذا النوع من الأتمتة أساسيًا عندما تريد الحفاظ على التناسق عبر البيئاتقم بنشر البنية التحتية كبرنامج أو قم بتشغيل المهام المتكررة (إيقاف تشغيل الأجهزة خارج ساعات العمل، ومراجعة التكاليف، وما إلى ذلك).
أمثلة على المهام الإدارية باستخدام Power Apps و PowerShell
لتوضيح إمكانات PowerShell في إدارة تطبيقات Power Apps، يمكننا النظر في بعض الأمثلة. المهام النموذجية الموجهة نحو البيئات والتطبيقاتالأمر cmdlet الخاص بالرأس هو Get-AdminPowerAppEnvironment، والذي يُرجع قائمة البيئات المتاحة.
بتشغيله بدون معلمات، ستحصل على معلومات أساسية لكل بيئةمثل اسم العرض، ومعرّفه (GUID)، وبيانات أخرى. يُعدّ هذا المعرّف (GUID) أساسيًا لإجراء عمليات لاحقة أكثر تفصيلًا.
إذا كنت ترغب في تحديد بيئة المستأجر الافتراضية، يمكنك تطبيق معلمات إضافية، مثل -Default، التي تقوم بتصفية النتائج للعثور بسرعة على تلك البيئة العامة.
بمجرد معرفة المعرّف الفريد العالمي (GUID) أو الاسم الداخلي للبيئة، يمكنك استخدامه لـ تعمّق في تفاصيلهاعلى سبيل المثال، من خلال سرد الاتصالات أو التطبيقات المرتبطة بها أو التدفقات. يتيح دمج أوامر cmdlets مع عامل التشغيل pipe إمكانية ربط الاستعلامات: الحصول على البيئة، وبناءً على تلك النتيجة، تشغيل أوامر cmdlets أخرى مثل Get-AdminPowerAppConnection.
بفضل خط الأنابيب ومعالجة الخصائص باستخدام أوامر مثل حدد أو قم بتجميعمن الممكن تحويل المخرجات، وتجميع التطبيقات حسب البيئة، وإنشاء كائنات مخصصة تُظهر بوضوح، على سبيل المثال، عدد التطبيقات لكل بيئة، إلى جانب اسمها الوصفي.
مثال سريع: فحص الذاكرة باستخدام PowerShell

لإثبات أن PowerShell مفيد حتى بدون أن تكون مسؤول نطاق، يمكنك استخدام أمر cmdlet بسيط مثل الحصول على لCimInstance حول فئة Win32_OperatingSystem للاستعلام عن ذاكرة النظام الحرة.
من خلال دمج تلك المعلومات مع عملية حسابية بسيطة، يمكنك حوّل الذاكرة الحرة إلى جيجابايت، وقرّبها لأعلى. وقارن ذلك بعتبة محددة مُمرَّرة كمعامل إلى البرنامج النصي (على سبيل المثال، 80 جيجابايت). بناءً على النتيجة، ستظهر لك رسالة تحذير بانخفاض الذاكرة أو رسالة تُشير إلى أن كل شيء على ما يُرام.
هذا النوع من البرامج النصية، على الرغم من بساطته، يوضح جيدًا كيفية عمل PowerShell مزج الكائنات والعمليات الرياضية والتحكم في التدفق (الشروط) لإنشاء أدوات سريعة يمكنك تكييفها مع بيئتك دون الحاجة إلى معرفة مسبقة واسعة وتشغيلها من نوافذ الطرفية.
تشغيل البرامج كمستخدم عادي من خلال برنامج نصي ذي صلاحيات إدارية
تتمثل إحدى المشكلات الشائعة إلى حد ما في وجود نص برمجي يحتاج إلى تشغيل مع امتيازات المسؤول بالنسبة لمهام معينة (على سبيل المثال، تغييرات النظام)، ولكن في الوقت نفسه يجب أن يقوم بتشغيل تطبيق نريد تشغيله بأذونات المستخدم القياسية.
تخيل برنامجًا نصيًا يحتوي على قائمة وحلقات تكرارية تُعيد تشغيل التطبيقات باستخدام وسائط مختلفة. تتطلب بعض هذه الإجراءات صلاحيات إدارية، ولكن يجب أن يتم تشغيل البرنامج النهائي. بدون امتيازات عاليةإن استخدام Start-Process مع معلمات مثل -RunAs أو -Credential يمكن أن يجبرك على إدخال كلمة المرور في كل مرة، وهو أمر غير عملي.
يتضمن الحل اللعب بـ سياقات أمنيةيُمكّنك هذا من الاستفادة من المستخدم التفاعلي الحالي أو تفويض عملية التشغيل إلى عملية أخرى لا تتطلب صلاحيات إدارية. قد لا يكون الأمر بسيطًا، ولكنه يُظهر بوضوح كيف يُمكن لـ PowerShell إدارة العمليات والصلاحيات بطريقة متطورة، تتجاوز مجرد تنفيذ الأوامر.
قم بإعداد PowerShell للعمل مع Active Directory
إذا كنت ستدير المستخدمين أو المجموعات أو أجهزة الكمبيوتر في خادم خدمات مجال Active Directory، فإن الخطوة الأولى هي تحقق من إصدار PowerShell تم التثبيت. تتطلب بعض الميزات إصدارات محددة، أو على الأقل معرفة الإصدار الذي لديك لتجنب السلوك غير المتوقع.
أوامر مثل احصل على المضيف, PSVersionTable دولار يُتيح لك الأمر `$PSVersionTable.PSVersion` التحقق من الإصدار والميزات. يُعيد الأمر `Get-Host` معلومات حول وحدة التحكم، بينما يُقدّم الأمر `PSVersionTable` ملخصًا تفصيليًا لإصدار PowerShell وبيانات البيئة الأخرى.
بعد التأكد من أن كل شيء على ما يرام، يجب عليك قم باستيراد وحدة Active Directoryتضيف هذه الوحدة جميع أوامر cmdlets الضرورية للعمل مع المستخدمين والمجموعات والغابات والمجالات ووحدات التحكم وما إلى ذلك. تسمى الوحدة ActiveDirectory.
للقيام بذلك، يُنصح بفتح وحدة تحكم PowerShell مع أذونات المسؤول ثم قم بتشغيل الأمر Import-Module ActiveDirectory. إذا لم تظهر أي أخطاء، فهذا يعني أن الوحدة النمطية قد تم تحميلها وجاهزة للاستخدام. من تلك اللحظة فصاعدًا، ستكون أوامر cmdlets مثل Get-ADUser وNew-ADUser وGet-ADDomain وGet-ADGroup متاحة.
استشر المعلومات المتعلقة بالغابة والمنطقة
بمجرد حصولك على صلاحية الوصول إلى وحدة Active Directory، فإن إحدى الممارسات الشائعة هي احصل على نظرة عامة على البنية التحتيةيتم ذلك باستخدام أوامر cmdlets التي توفر معلومات حول الغابة والمجال ووحدات التحكم في المجال.
معلومات من غابة AD DS
الأمر cmdlet Get-ADForest يقوم بإرجاع بيانات الغابة، مثل الاسم، وقائمة النطاقات، والمواقع، وجذر النطاق، والأقسام، واسم النطاق الرئيسي، والمستوى الوظيفي.
يمكن لهذا المخرج فلتر باستخدام تحديد ويمكن استخدام عامل خط الأنابيب لعرض الحقول التي تهمك فقط. على سبيل المثال، اسم النطاق الرئيسي فقط أو المستوى الوظيفي، وهو أمر مفيد للغاية أثناء عمليات التدقيق أو مهام المراجعة.
معلومات المجال
وبالمثل، الأمر cmdlet الحصول على ADDomain يوفر معلومات حول النطاق الحالي: اسم النطاق، والنطاقات الفرعية، والنطاق الأصل، وجذر نظام أسماء النطاقات، والمستوى الوظيفي، والغابة التي ينتمي إليها، واسم NetBIOS، ومحاكي PDC، وRID الرئيسي أو مدير البنية التحتية.
يمكنك أيضًا استخدام هذا الموقع الأنابيب والاختيار لعرض حقول معينة فقط، مثل الاسم أو وضع النطاق، أو دمجها في نفس المخرجات. يساعد هذا في التحقق بسرعة من حالة النطاق وتكوينه دون الحاجة إلى التنقل عبر واجهات المستخدم الرسومية.
صيغ الإخراج: جدول، قائمة، ونافذة
تتيح لك PowerShell تشكيل عرض المعلومات لجعلها أكثر راحة للقراءةتُعد أوامر Format-Table (FT) و Format-List (FL) و Out-GridView ثلاثة خيارات شائعة الاستخدام.
على سبيل المثال، يمكنك توجيه مخرجات الأمر Get-ADDomain إلى اضغط FT لعرضه في الجدول، إلى FL لعرضها في شكل قائمة مع مزيد من التفاصيل، أو إلى Out-GridView لفتح نافذة تفاعلية حيث يمكنك التصفية والفرز.
وحدات تحكم المجال
الأمر cmdlet الحصول على ADDomainController يوفر لك هذا معلومات حول وحدات التحكم بالمجال في بنيتك التحتية. يمكنك استخدام المعامل -Filter لاختيار وحدات تحكم معينة فقط، أو دمجه مع Select لعرض حقول محددة (الاسم، الموقع، الدور، إلخ).
إدارة المستخدمين في Active Directory باستخدام PowerShell
يُعد استخدام PowerShell مع خدمات مجال Active Directory (AD DS) أحد أكثر الاستخدامات شيوعًا. إدارة حسابات المستخدم: الاستعلامات، والتسجيلات، والإلغاءات، وتغييرات كلمات المرور، وفتح الحسابات، وتعديلات السمات.
عرض المستخدمين وعقاراتهم
الأمر البرمجي الأساسي للحصول على معلومات المستخدم هو الحصول على ADUserيمكنك استخدامه عن طريق إدخال اسم الحساب مباشرةً لعرض تفاصيله الرئيسية.
إذا كنت بحاجة إلى معلومات أكثر تفصيلاً، فراجع المعلمة -الخصائص يتيح لك هذا تحديد الحقول التي ترغب في عرضها. على سبيل المثال، يمكنك عرض جميع الخصائص باستخدام علامة * أو بعضها فقط، مثل CN أو UserPrincipalName أو whenCreated أو whenChanged، حسب الحاجة.
من المفيد أيضاً إطلاق استعلام عام مثل Get-ADUser -Filter * ويمكنك دمج ذلك مع دالة .Count لمعرفة عدد المستخدمين المسجلين في النطاق. يُعد هذا بمثابة تدقيق سريع للكشف عن التسجيلات غير المتوقعة أو التحقق من حجم حركة المرور.
إضافة وإزالة المستخدمين الأفراد
لإنشاء مستخدمين جدد في Active Directory، يكون الأمر cmdlet الرئيسي هو مستخدم جديدقبل استخدامه، من الشائع إعداد كلمة المرور باستخدام ConvertTo-SecureString، لأنه بشكل افتراضي لا يتم دعم تمرير كلمة المرور كنص عادي بدون هذا التحويل.
بمجرد حصولك على كلمة المرور الآمنة في متغير، يمكنك أنشئ المستخدم بأقل قدر من (الاسم وكلمة المرور) أو إضافة معلمات مثل الوصف، وتمكين الحساب من اللحظة الأولى أو تحديد سمات أخرى.
فيما يتعلق بالحذف، من الشائع في البيئات المحلية رؤية أوامر مثل إزالة المستخدم المحلي لحذف الحسابات من النظام المحلي، يمكنك استخدام الأمر `-Filter`. أما بالنسبة لمستخدمي النطاق، فتُستخدم أوامر cmdlets مكافئة لحذف الحساب مباشرةً من Active Directory. بالإضافة إلى ذلك، يمكنك تصفية المستخدمين حسب أنماط الأسماء باستخدام `-Filter` مع تعبيرات مثل `Name -like "string*"`، ودمجها مع `Select` لعرض حقل `Name` فقط.
تسجيلات المستخدمين الجماعية وإلغاء الاشتراكات عبر ملف CSV
إحدى نقاط قوة PowerShell هي أتمتة العمليات على نطاق واسعلإنشاء أو حذف العديد من المستخدمين في وقت واحد، تتمثل الممارسة المعتادة في استخدام ملفات CSV والبرامج النصية التي تتكرر من خلالها سطرًا بسطر.
في حالة الإنشاء المحلي الجماعي، يمكنك إنشاء ملف CSV يحتوي على أعمدة اسم المستخدم وكلمة المرور، بالإضافة إلى عدة صفوف تحتوي على أزواج اسم المستخدم/كلمة المرور. يمكنك استيراد الملف باستخدام استيراد ملف CSV قم بتعيين متغير (على سبيل المثال، $listofusers) ثم قم بالتكرار عبر تلك القائمة باستخدام حلقة foreach.
داخل الحلقة، تقوم بتحويل كلمة المرور إلى SecureString واستدعاء أوامر cmdlets مثل مستخدم محلي جديد أو New-ADUser حسب ما إذا كنت تعمل على الجهاز المحلي أو على النطاق. بهذه الطريقة، يتم إنشاء مستخدم لكل صف في ملف CSV باستخدام البيانات الموجودة في ذلك الصف. إذا كنت تعمل أيضًا مع ملفات محلية، فيمكنك أتمتة المهام باستخدام الملفات لإعداد أو التحقق من صحة ملفات CSV هذه قبل استيرادها.
لحذف البيانات دفعة واحدة، تكون العملية متطابقة تقريبًا، ولكن ملف CSV عادةً ما يحتوي على اسم المستخدم فقط. بعد استيراده، تقوم حلقة foreach بالمرور على القائمة واستدعاء... إزالة المستخدم المحلي أو أوامر AD المكافئة لكل حساب مسجل.
قم بتغيير كلمات المرور وفتح الحسابات
الأمر cmdlet تعيين كلمة مرور حساب ADA يُتيح لك هذا البرنامج تعديل كلمات المرور أو إعادة تعيينها. إذا كنت تعرف كلمة المرور الحالية، فما عليك سوى تشغيل الأمر واتباع التعليمات التي تطلب منك إدخال كلمة المرور الحالية والجديدة.
إذا كنت لا تعرف كلمة المرور السابقة، يمكنك استخدام مُعدِّل -إعادة الضبط لتعيين كلمة مرور جديدة مباشرةً دون الحاجة إلى القديمة. هذا الأسلوب شائع جدًا في الدعم الفني عندما ينسى المستخدم كلمة مروره ولا يستطيع تسجيل الدخول.
لفتح الحسابات المقفلة، استخدم الأمر cmdlet المناسب. فتح حساب ADAإضافة المعامل `-Verbose` ستوفر لك رسائل تفصيلية حول ما يحدث. بالإضافة إلى ذلك، إذا كنت ترغب في الاختبار دون تنفيذ الإجراء فعليًا، فإن المعامل `-WhatIf` يحاكي العملية، موضحًا لك ما سيحدث.
تعديل سمات المستخدم الأخرى
عندما تحتاج إلى تغيير بيانات مثل الوصف أو القسم أو المدينة أو حقول المستخدم الأخرى، فإن الأمر البرمجي الذي يتم استخدامه هو مجموعة ADUserيمكنك من خلاله تحديد المستخدم المستهدف والخاصية المراد تعديلها.
على سبيل المثال، إذا كنت ترغب في إضافة وصف، فمن الجدير بالذكر أن نصوص تحتوي على مسافات يجب وضعها بين علامتي اقتباس لتجنب مشاكل التفسير. ومن ثم، يمكنك ربط الأوامر أو البرامج النصية معًا لتعديل عدة سمات في آن واحد.
إدارة المجموعات في Active Directory باستخدام PowerShell
بالإضافة إلى المستخدمين، يتيح لك PowerShell أيضًا إدارة المجموعات والعضويات بطريقة ملائمة للغاية، وهو أمر أساسي في أي بيئة دليل.
عرض المجموعات وأعضائها
لعرض بيانات مجموعة معينة، استخدم الأمر cmdlet التالي: احصل على ADGroupعن طريق تمرير اسم المجموعة. يساعدك الحصول على معلومات حول المجموعة في مراجعة تكوينها ونطاقها ونوعها وتفاصيل أخرى.
إذا كنت ترغب في معرفة المستخدمين المنتمين إلى مجموعة معينة، فإن الأمر المناسب هو الحصول على ADGroupMemberيتضمن الناتج معلومات أساسية حول كل عنصر عضو، مثل اسمه أو نوع الكائن أو معرف النظام (SID)، مما يبسط مراجعة الأذونات والوصول.
إضافة مستخدمين إلى مجموعات
لإضافة مستخدمين جدد إلى مجموعة موجودة، يتم استخدام الأمر cmdlet. إضافة عضو في مجموعة ADعادةً، تقوم بتمرير اسم المجموعة ثم معرف المستخدم، والذي يكون في هذا السياق عادةً SamAccountName.
هذا النهج مثالي لـ أتمتة تسجيل الموظفينبالإضافة إلى إنشاء الحساب، يمكن للبرنامج النصي إضافته تلقائيًا إلى المجموعات المناسبة (القسم، أذونات التطبيق، الوصول إلى الموارد، وما إلى ذلك)، مما يجنب الأخطاء اليدوية.
أتمتة عمليات نقل المستخدمين بين الوحدات التنظيمية
ومن المهام الشائعة الأخرى ما يلي: الهجرة الجماعية للمستخدمين بين الوحدات التنظيمية داخل Active Directory، على سبيل المثال عندما تتم إعادة هيكلة المؤسسة، أو تغيير الأقسام، أو إعادة تنظيم شجرة AD.
تتمثل إحدى الطرق الفعالة للقيام بذلك في البدء من تم تحويل ملف Excel إلى CSVيحتوي الملف على أعمدة تشير إلى المستخدم، والموقع الحالي، ووحدة التنظيم الجديدة. يتم استيراد ملف CSV هذا إلى PowerShell ويتم تكرار العملية عليه، لإنشاء مسار LDAP لكائن المستخدم ومسار الوجهة.
الأمر الرئيسي هنا هو نقل ADObjectيتم تمرير مُعرّف الكائن (مسار LDAP المُنشأ، على سبيل المثال مع CN=User,OU=Origin,DC=…) ومسار الهدف الذي يُشير إلى وحدة التنظيم الوجهة. في كل تكرار للحلقة، ينتقل المستخدم من موقعه القديم إلى الموقع الجديد.
يمكن تكييف هذا النهج نفسه لـ تعديل السمات بشكل جماعيقم بتغيير الأوصاف، وتعديل المدن، وتحديث رسائل البريد الإلكتروني، وما إلى ذلك. تكمن الحيلة في أن PowerShell يقرأ كل صف من ملف CSV ككائن يحتوي على خصائص، والتي يمكنك استخدامها بعد ذلك في البرامج النصية الخاصة بك.
أنشئ ملفات CSV للتسجيلات الجماعية باستخدام New-ADUser
لتسجيل العديد من المستخدمين في نطاق ما، فإن أفضل طريقة هي إعداد ملف CSV منظم جيدًا يحتوي الصف الأول على أسماء الخصائص، ومن ثم صف واحد لكل مستخدم مع قيمها.
تتيح لك جداول البيانات (LibreOffice Calc، Excel، إلخ) تحديد أعمدة مثل GivenName، Surname، SamAccountName، UserPrincipalName، إلخ، والتي يجب أن تتطابق تمامًا مع وسيطات cmdlet. إنشاء مستخدم جديد في Active Directory ولكن بدون البرنامج النصي.
بعد إدخال بيانات جميع المستخدمين، قم بتصدير الجدول إلى تنسيق CSV، مع اختيار فاصل الحقول (عادةً ما يكون فاصلة) اترك الخيارات الافتراضية ما لم تكن بحاجة إلى تعديلات محددة. بعد ذلك، يُنصح بفتح الملف باستخدام برنامج المفكرة للتحقق من صحة المحتوى: العناوين في السطر الأول والقيم المفصولة بفواصل في الأسطر التالية.
استيراد المستخدمين من ملف CSV إلى خادم Windows باستخدام PowerShell
عندما يصبح ملف CSV جاهزًا، تقوم بنقله إلى الخادم (عن طريق نسخه إلى مجلد المستندات، على سبيل المثال) ومن جلسة PowerShell مع تحميل وحدة Active Directory، تبدأ عملية الاستيراد.
الخطوة الأولى هي التنفيذ استيراد ملف CSV تحقق من الملف للتأكد من أن PowerShell يتعرف على الأعمدة بشكل صحيح. ستلاحظ أن كل سطر يتحول إلى كائن، حيث تتوافق كل خاصية مع عمود في ملف CSV.
إذا كانت النتيجة كما هو متوقع، يمكنك الآن ربط الأمر بـ إنشاء مستخدم جديد باستخدام الأنبوببحيث يُستخدم كل عنصر مُستورد كمدخل لأمر إنشاء الحساب. بهذه الطريقة، يمكنك تسجيل جميع المستخدمين في الملف في سطر واحد.
بما أن العديد من الخصائص ستكون مشتركة، فمن المستحسن إضافة معلمات إلى الأمر New-ADUser في نفس السطر، مثل: - تم التفعيل $True لإنشاء حسابات نشطة من البداية، أو استخدام -AccountPassword مع ConvertTo-SecureString لتعيين كلمة مرور افتراضية.
يمكنك أيضًا تحديد الحاوية المستهدفة أو الوحدة التنظيمية باستخدام المعلمة الدربيمكنك تحديد مسار LDAP مثل CN=Users,DC=domain,DC=local أو وحدة تنظيمية أخرى. بعد تشغيل الأمر، يمكنك التحقق من النتيجة باستخدام Get-ADUser -Filter * أو عن طريق تصفية المستخدمين الذين تم إنشاؤهم حديثًا.
بدمج كل ما سبق، يتضح أن PowerShell ليس مجرد وحدة تحكم "للمسؤولين"، بل منصة أتمتة قادرة على إدارة كل شيء بدءًا من البرامج النصية المنزلية البسيطة وصولًا إلى التشغيل الكامل لبيئة Active Directory، وتراخيص Microsoft 365، وبيئات Power Apps، وموارد Azure. سواءً كنت لا تدير أي شيء اليوم أو كنت مسؤولًا عن نطاق كامل غدًا، فإن إتقان هذه الأوامر البرمجية (cmdlets) ومنطقها باستخدام ملفات CSV، والأنابيب، والكائنات يمنحك مرونة هائلة لتوفير الوقت، وتقليل الأخطاء، والتحكم الدقيق في بيئة Microsoft الخاصة بك. شارك هذا الشرح وسيتعلم المزيد من المستخدمين خطوات إدارة هذه الأتمتة باستخدام PowerShell.
