كيفية إضافة أجهزة كمبيوتر AD إلى صفيف Powershell

15 سبتمبر 2020 1220 الآراء بوويرشيل إضافة أجهزة الكمبيوتر الإعلانية إلى مجموعة

تصفح مواضيع المنشور

مقدمة

توجد طريقة واحدة لإضافة أجهزة كمبيوتر AD إلى صفيف PowerShell. مصفوفة APowerShell هي بنية بيانات تخزن مجموعة من العناصر.

من الناحية المثالية ، عند تشغيل أمر PowerShell Get-ADComputer ، يجب تخزين النتيجة تلقائيًا في صفيف. لكن قد يواجه بعض المسؤولين مشكلة في التعامل مع البيانات بسبب الطريقة التي يتم بها تخزين المصفوفة.

في هذا الدليل ، سأقوم بتبسيط كيفية إضافة أجهزة كمبيوتر AD إلى مجموعة PowerShell. سأعرض طرقًا مختلفة لمعالجة البيانات في المصفوفة. يغطي الدليل أيضًا كيفية استخدام أجهزة كمبيوتر AD في مصفوفة PowerShell في جملة aForEach.

قبل أن تبدأ في معالجة أجهزة كمبيوتر AD في مصفوفة Powershell ، يجب عليك استرداد أجهزة الكمبيوتر. سيوضح القسم التالي كيفية الحصول على أجهزة كمبيوتر AD باستخدام أمر PowerShell Get-ADComputer.

كيفية الحصول على أجهزة كمبيوتر AD من Active Directory

للحصول على أجهزة كمبيوتر AD ، قم بتشغيل الأمر أدناه:

Get-ADComputer -Filter * -Properties Name | Select-Object Name

يقوم الأمر بإرجاع أسماء جميع أجهزة الكمبيوتر في المجال.

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

الرجوع إلى نتيجة الأمر أعلاه. لقد قلت سابقًا أنه عند استرداد أجهزة كمبيوتر AD يكون بالفعل في مصفوفة PowerShell.

لتأكيد ذلك ، قم بتشغيل الأمر أدناه:

(Get-ADComputer -Filter * -Properties Name | Select-Object Name).GetType()

ها هي النتيجة

لقد قمت ببساطة بلف الأمر السابق في عامل التشغيل () واستخدمت الامتداد GetType طريقة لتحديد نوع كائن PowerShell الذي تم إرجاعه.

تؤكد النتيجة أن نتيجة الأمر Get-ADComputer هي ملف System.array .

لذا ، إذا كانت مصفوفة ، فلماذا لا يزال الأشخاص يبحثون عن powerhell يضيفون أجهزة كمبيوتر إعلانية إلى المصفوفة؟

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

PowerShell إضافة أجهزة كمبيوتر AD إلى صفيف

فيما يلي طرق مختلفة يمكنك من خلالها إضافة أجهزة كمبيوتر AD إلى مصفوفة:

PowerShell إضافة أجهزة كمبيوتر AD إلى مصفوفة بدون متغير

كما تمت مناقشته في القسم الأخير ، عند استرداد أجهزة الكمبيوتر من Active Directory باستخدام Get-ADComputer ، تكون النتيجة موجودة بالفعل في مصفوفة.

أعتقد أن السبب وراء اعتقاد معظم الناس أنه ليس في مصفوفة هو الطريقة التي يتم بها تقديم البيانات.

لنعد إلى الأمر. ها هو:

Get-ADComputer -Filter * -Properties Name | Select-Object Name

والنتيجة:

PowerShell إضافة أجهزة كمبيوتر AD إلى صفيف بدون متغيرات

لاحظ أن النتيجة لها عنوان يسمى اسم . هذه هي خاصية الكائن التي قمنا بإعادتها باستخدام أمر تحديد الكائن.

من تلقاء نفسها ، هذه ليست مشكلة. ولكن إذا حاولت استخدام هذا في تعليمة aForEach ، فسيتم إرجاع أخطاء. خاصة إذا حاولت استخدام القيمة في أمر PowerShell آخر ضمن جملة ForEach.

كيف ترجع القيم بدون عنوان الخاصية؟ هناك نوعان من الطرق التي يمكنك القيام بذلك.

واحد ، عن طريق تعديل الأمر كما هو موضح أدناه:

(Get-ADComputer -Filter * -Properties Name | Select-Object Name).Name 

لاحظ أن العنوان قد اختفى!

هناك طريقة أخرى لإزالة الرؤوس من النتيجة وهي استخدام الامتداد -توسيع عقار معلمة حدد الكائن .

Get-ADComputer -Filter * -Properties Name | Select-Object -ExpandProperty Name

ها هي النتيجة مع رأس الصفحة.

PowerShell إضافة أجهزة كمبيوتر AD إلى مصفوفة ذات متغير

في البرمجة النصية لـ PowerShell ، تسهل المتغيرات إدارة البيانات. في المقام الأول ، فإنه يقلل من طول النصوص الخاصة بك.

لإضافة أجهزة كمبيوتر AD إلى مصفوفة PowerShell باستخدام متغير ، قم بتعديل الأمر كما هو موضح أدناه:

$ADComputers = Get-ADComputer -Filter * -Properties Name | Select-Object -ExpandProperty Name

لن يظهر الأمر أعلاه لإرجاع نتيجة. لماذا ا؟ لأن النتيجة مخزنة الآن في ملف AD الكمبيوترات عامل!

للتأكد من تخزين النتيجة في AD الكمبيوترات متغير ، قم بتشغيل الأمر أدناه

$ADComputers

ها هي نتيجتك

ولكن هل أجهزة كمبيوتر AD موجودة في مجموعة PowerShell؟ دعنا نتعرف على الأمر أدناه:

$ADComputers.GetType()

تظهر النتيجة أن أجهزة كمبيوتر AD لا تزال في مصفوفة على الرغم من تخزينها في متغير!

PowerShell إضافة أجهزة كمبيوتر AD إلى Array و ForEach عبارة

تسمح لك عبارة PowerShellForEach بالتكرار خلال مجموعة من الكائنات لأداء مهام محددة.

قد يكون أحد التطبيقات هو أنك تريد تحديث خاصية كل كمبيوتر AD قمت باسترداده باستخدام الأمر Get-ADComputer.

بالنسبة لهذا الأمر ، أفترض أن أجهزة كمبيوتر AD مخزنة في المتغير $ ADComputers. إليك كيفية دمج نتيجة أجهزة كمبيوتر AD في صفيفك مع جملة ForEach.

ForEach ($ADComputer in $ADComputers) {  



}

استنتاج

تعد إضافة أجهزة كمبيوتر AD إلى صفيف PowerShell أمرًا بسيطًا مثل استرداد أجهزة الكمبيوتر باستخدام ملف Get-ADComputer يأمر. غطى هذا الدليل هذا ولكنه أوضح أيضًا كيفية معالجة النتيجة لإزالة الرؤوس. كما غطت كيفية إضافة النتائج إلى متغير واستخدام ForEach لتكرار النتيجة.

آمل أن يكون الدليل مفيدًا. إذا كان لديك أي سؤال أو تعليق ، فاستخدم نموذج 'ترك الرد' في نهاية هذه الصفحة. بدلاً من ذلك ، يمكنك مشاركة تجربتك في التعامل مع أجهزة كمبيوتر AD في مجموعة PowerShell.

لمعرفة المزيد حول PowerShell ، تفضل بزيارة صفحة PowerShell الخاصة بنا. والأفضل من ذلك ، للحصول على قائمة بجميع أدلة PowerShell الخاصة بنا ، ابحث في PowerShell (يفتح رابط البحث في علامة تبويب متصفح جديدة).

أدلة أخرى مفيدة

  • برنامج PowerShell Script للحصول على أعضاء مجموعة Active Directory
  • Powershell حاول الالتقاط أخيرًا ومعالجة الخطأ

مصادر ومراجع إضافية