عند العمل مع PowerShell، هناك أوقات تحتاج فيها إلى العمل مع مجموعات من البيانات. نعمل مع الكثير من الملفات وحسابات المستخدمين والآلات الافتراضية، وأكثر من ذلك. عند عرض هذه الكائنات المختلفة في وحدة التحكم، ستتمدد الكائنات على الشاشة واحدة تلو الأخرى دون مراعاة لكيفية رغبتك في رؤيتها. ولكن يمكن تصحيح ذلك! باستخدام أمر Group-Object
في PowerShell، يمكنك تجميع الكائنات معًا. يعمل هذا الأمر على النحو الذي يعمل به الجملة GROUP BY في SQL.
لـ PowerShell طريقة لتلخيص الكائنات حسب خصائصها من خلال أمر Powershell Group Object. يسمح هذا الأمر للمبرمج بالحصول على نظرة شاملة عن خصائص الكثير من الكائنات دفعة واحدة في مجموعات.
دعنا ننشئ مجموعة من الكائنات من نفس النوع. يمكن أن تكون هذه الكائنات من أي نوع. ومع ذلك، لهذا العرض التوضيحي، سأستخدم كائنات System.ServiceProcess.ServiceController التي يعيدها أمر Get-Service
.
ليعمل Group-Object كما هو متوقع، تأكد من تجميع الكائنات من نفس النوع فقط. من المهم أن تحتوي جميع الكائنات على نفس الخصائص.
أدار وقدم تقارير حول Active Directory وExchange وMicrosoft 365 مع ManageEngine ADManager Plus. قم بتنزيل النسخة التجريبية المجانية!
Group-Object بدون معلمات
تُعيد Get-Service
جميع الخدمات على جهازي المحلي. نظرًا لتواجد العديد من الخدمات هنا، لا يمكنني الحصول على فكرة عن حالتها، ونوع بدء التشغيل والمزيد. أرغب في تجميع هذه الخدمات أولاً حسب حالتها. لتجميع هذه الخدمات، سأمرر جميع كائنات الخدمة إلى الأمر Group-Object
في PowerShell واستخدام خاصية Status
.
لاحظ أنه بتوجيه جميع الخدمات إلى Powershell Group Object
، يمكنك الحصول على العدد. أمر كبير ولكن مفيد.
تجميع الكائنات بواسطة خاصية واحدة
لتجميعها حسب خاصية محددة (الحالة في هذه الحالة)، يجب علي أن أخبر Group-Object
بأنني أريد تجميعها بناءً على خاصية معينة لكائن. يتم ذلك باستخدام معلمة Property
في Group-Object
.
الآن نحن نتحدث! يمكنني الآن رؤية عدد الخدمات المتوقفة والتي تعمل في نفس الوقت. يمكنني فعل الشيء نفسه لـ StartType
أيضًا.
تصفية مخرجات Group-Object
ربما أريد الغوص ورؤية الخدمات الفعلية في واحدة أو أكثر من هذه المجموعات. يمكنني الحصول على هذه الكائنات عن طريق النظر إلى الخاصية Group
التي يتم إرجاعها بواسطة أمر Powershell group object. يحتوي الكائن Group
على جميع الخدمات التي تم تجميعها بواسطة قيمة خاصية الكائن المجمع. للحصول على جميع الخدمات المتوقفة إذا كنت أجمع على حالة الخدمة، يمكنني تصفية الخدمات حسب حالة Stopped
ثم توسيع الكائن Group
لرؤية جميع تلك الخدمات.
تجميع الكائنات بواسطة خصائص متعددة
ليس فقط يمكنك تجميع الكائنات مثل هذا على خاصية واحدة، ولكن يمكنك أيضًا تجميعها على عدة خصائص أيضًا. ربما ترغب في رؤية جميع الخدمات استنادًا إلى حالتها و نوع بدء التشغيل. للقيام بذلك، أحتاج فقط إلى إضافة اسم خاصية آخر إلى معلمة Property
على Group-Object
.
يمكنك أن ترى من خلال إضافة خاصية إضافية؛ يمكنك ببساطة إنشاء مجموعة من السيناريوهات “و” وتجميعها حسب الحاجة إلى قدر الممكن على العديد من الخصائص!
إدارة وتقرير الدليل النشط، وExchange وMicrosoft 365 مع ManageEngine ADManager Plus. حمل النسخة التجريبية المجانية!
الملخص
أمر Group-Object
هو أمر يساعدك في تجميع الكائنات المتشابهة معًا استنادًا إلى خاصية مشتركة. يأتي تجميع الكائنات مثل هذا بمساعدة في العديد من الطرق المختلفة. آمل من خلال تعلم القليل عن كيفية عمل أمر Group-Object
، أن تحصل على المزيد من الأفكار حول كيفية تحسين وإنشاء سكريبتات PowerShell أفضل!
إذا كنت للتو بدأت في استخدام PowerShell، فأنصحك بشدة بالتحقق من دورتي الصغيرة حول بناء أدوات PowerShell!
Source:
https://adamtheautomator.com/powershell-group-object/