تاريخ النشر: 2022-02-01
تعد الواجهة الرسومية الخيار الأسهل غالبا لتنفيذ مختلف الأنشطة على مستوى أي نظام تشغيل، لكن هذا الخيار ليس متاحا دائما في الخوادم لأن بعض العمليات المرتبطة بالأنشطة المعقدة والمتقدمة لا يمكن تنفيذها الاعن طريق سطر الأوامر Command Line ، إضافة الى أنه عادة نحتاج الى تنفيذ أمر واحد على عدة أجهزة في نفس الوقت ، أو ببساطة لأن الواجهة الرسومية غير متاحة لأسباب أمنية أو لأنها غير موجودة كما في حالة Server Core .
في هذه الحالة أحسن خيار بالنسبة لأنظمة Windows Server هو استعمال Powershell الذي يتيح عديد الخيارات سنتعرف على بعض منها في هذا المقال.
يمكن اعتبار Windows PowerShell كمحرك أتمتة موجه للكائنات ولغة برمجة نصية scripting language مع هيكل سطر أوامر تفاعلي مصمم لغرض إدارة الأنظمة وأتمتة المهام المتكررة.موجود في جميع أنظمة Microsoft Windows بدءا من Windows Server 2003 ، وموجه خصيصا ﻷنظمة ميكروسوفت.
لفتح نافذة Powershell اكتب في خانة البحث في قائمة إبدأ Powershell وسيظهر نوعين منه :
Powershell سطر الأوامر: كما هو موضح في الصورة:
Powershell ISE (Integrated Scripting Envirenement) : أفضل خيار للعمل مع لغة البرمجة النصية ، لأنه يوفر تمييز بناء الجملة syntax highlighting والتعبئة التلقائية auto-complete للأوامر وميزات أخرى مما يجعل تطوير البرامج أسرع وارتكاب للأخطاء أقل، وهو ما يظهر في الصورة التالية:
تنبيه: قد تحتاج في بعض الأحيان استعمال Powershell بصلاحيات المدير Run As Administrator
أي ملف سكريبت powershell له امتداد ps1. ويمكن تشغيله باحدى طريقتين:
عن طريق اختيار Run with powershell من قائمة الاختيارات بالضغط على يمين الفأرة:
وإما عن طريق سطر الأوامر : وذلك بكتابة إسم الملف مع الأمتداد
في كلتا الحالتين السابقتين ، لا يمكن تنفيذ أي برنامج powershell نصي ما لم تقم بتعديل سياسة تقييد البرامج النصية.
في الحالة الاعتيادية هناك سياسة تقيد تنفيذ البرنامج النصي لأي script powershell ، وذلك لحماية النظام من أي برامج خبيثة.
يمكنك التحقق من هذه السياسة عن طريق تشغيل الأمر التالي:
Get-ExecutionPolicy
Restricted
نلاحظ أن السياسة الإعتيادية هي : Restricted وهو مايفسر ظهور رسالة الخطأ السابقة عند محاولتنا تشغيل ملف powershell عن طريق سطر الأوامر.
لبدء العمل مع PowerShell ، ستحتاج إلى تغيير إعداد السياسة من Restricted إلى RemoteSigned :
Set-ExecutionPolicy RemoteSigned
قائمة السياسات الممكنة موضحة في الجدول التالي:
السياسة | الإمكانية |
---|---|
Restricted | لا يُسمح بأي نصوص برمجية. هذا هو الإعداد الافتراضي ، لذلك ستراه في المرة الأولى التي تقوم فيها بتشغيل الأمر. |
AllSigned | يمكنك تشغيل نصوص موقعة من مطور موثوق. مع تطبيق هذا الإعداد ، قبل التنفيذ ، سيطلب منك البرنامج النصي تأكيد رغبتك في تشغيله. |
RemoteSigned | يمكنك تشغيل البرامج النصية الخاصة بك أو البرامج النصية الموقعة من قبل مطور موثوق. |
Unrestricted | يمكنك تشغيل أي برنامج نصي تريده. |
Default | تقوم نفس عمل Restricted |
Bypass | تقوم نفس عمل Unrestricted أي كأنه لا توجد هناك أي سياسة . |
تأتي معظم وظائف PowerShell من Cmdlet والتي تكون دائمًا عن تنسيق فعل-اسم verb-noun ،مفصولين بشرطة، وليس بصيغة الجمع.
علاوة على ذلك ، فإنناتج تنفيذ Cmdlet تكون بارجاع كائنات objects و ليست نصًا.
على سبيل المثال لا الحصر ، تتضمن بعض الأفعال:
للإطلاع على قائمة الأفعال الممكنة من هنا.
للحصول على المساعدة حول أمر معين ، يكفي كتابة Get-command متبوع بالكلمة المراد البحث عنها، مثلا لمعرفة كيفية إعادة تعينن اسم للجهاز، نكتب:
Get-help rename-computer
للحصول على قائمة جميع الأوامر الممكنة باسم كائن معين، مثلا كمبيوتر:
Get-Command *computer*
لمعرفة حالة معينة لكائن محدد، نسبق الكائن بفعل get . مثلا لمعرفة عنوان ال IP :
Get-NetIpConfiguration
أي cmdlet لديها العديد من المتغيرات التي تحدد كيفية تنفيذ الأمر.فبرنامج Powershell ISE يقدم قائمة المتغيرات الممكنة في أمر معين بعد كتابة شرطة – مثلا :
يمكننا مثلا معرفة حالة الجدار لناري عن طريق:
Get-NetFirewallProfile
يمكن تغيير الحالة الى ايقاف (لا ينصح بذلك في الواقع العملي) عن طريق ال cmdlet التالي:
Set-NetFirewallProfile -Profile domain,public,private -Enabled False
يمكن اعادة تشغيل الحدار الناري مجددا :
Set-NetFirewallProfile -Profile domain,public,private -Enabled True
بعض الأوامر تملك استعارات ، أي أوامر مصغرة عن الأمر الأصلي.مثلا لتشغيل الآلة الحاسبة، الأمرين التاليين يؤديان نفس الدور:
Start-Process Calculator
start Calculator
نفس الشيء ، لإيقاف البرنامج السابق (الآلة الحاسبة)، كلا الأمرين يؤديان الغرض:
Stop-Process -name Calculator
spps -name Calculator
لمشاهدة جميع الأسماء المستعارة ، قم بتنفيذ
Get-Alias
ترك التعليقات في نص سيساعدك أنت وزملاؤك على فهم ما يفعله النص بشكل أفضل.التعليق المؤلف عن سطر واحد يبدأ بعلامة (#) ،أما تلك المكونة من عدة أسطر فتبدأ وتنتهي بعلامات الأرقام وأقواس الزاوية وتنتشر عبر عدة أسطر.
# view all available features (one line comment)
Get-WindowsFeature
<#
(multi line comments)
we will create multiple dsc configuration
one for each machines set
verify at end
#>
Configuration IISConfig {
.....
يقوم مبدأ الإمداد على تمرير البيانات من cmdlet إلى آخر.
على سبيل المثال ، إذا قمت بتنفيذ النص البرمجي التالي ، فستحصل على جميع الخدمات مرتبة حسب حالتها:
Get-Service | Sort-Object -property Status
يمكن استعمال الإمداد لأكثر من مرة، مثلا لعرض البرامج المشتغلة فقط، وعرض الأسماء، ثم ارسال المخرجات الى ملف :
Get-Service | WHERE {$_.status -eq "Running"} | SELECT displayname | Out-File running_services.csv
لعرض محتوى الملف :
cat .\running_services.csv
في هذا المنشور تعرفنا على كيفية تشغيل PowerShell ، وكيفية تغيير سياسة التنفيذ ، وما هي ال cmdlet ، وكيفية تمرير البيانات باستخدام الإمداد وكيفية الحصول على خصائص الكائن. ضع في اعتبارك أنه إذا نسيت شيئًا ما ، فيمكنك دائمًا استخدام Get-Help cmdlet.
العربية | ُEnglish | Français |
---|---|---|
سطر الأوامر | Command Line | ligne de commande |
لغة برمجة نصية | scripting language | langage de script |
بيئة البرمجة النصية المتكاملة | (ISE) Integrated Scripting Envirenement | Environnement de script intégré |
تمييز بناء الجملة | syntax highlighting | coloration syntaxique |
التعبئة التلقائية | Auto complete | Saisie automatique |
خاصية | feature | fonctionnalité |
سياسة | policy | politique |
الاسم المستعار | alias | alias |
تعليق | comment | commentaire |
انبوب – امتداد - | Pipes | tuyaux |
كائن | object | objet |
مقيد | restricted | limité |
كائن | object | objet |
موقعة | signed | signé |
التحكم عن بعد | remote | à distance |
خادم | server | serveur |