هل سبق لك أن أردت تشغيل أوامر PowerShell على جهاز بعيد من راحةه محطتلك العمل س؟ حسنبًا،ق مع PowerShell Remoting ل يمكنكك ذلك أ. باستخندام PowerShell ع أن بُعدر، يمكندك تشغتيل الأوام تر والسكشربتاتغ على عديلة أنظم أة بعيودة بطراميقة مستردامة. ه PowerShellل يبدو ع ذلكلى مثيرً جا للاههتمام؟ا تابع الزقراءة ل بتتعلعم كييفيةد التحكم في من تلك ر الأاجهزحة البعيةدة بأ مسلوب PowerShellك.
المتتبك؟ حسنًا، مع التحكم عن بعد في PowerShell يمكنك ذلك. من خلال PowerShell عن بُعد، يمكنك تشغيل الأوامر والنصوص علىط علبداتة المسب أقة
سينكون هظذا البرمنامج التعةليمي ب عرضعًا تطبييقيدًا عملةيًا ب. إذا كطنت تررغب في ميتابعة،ق تأكدة من مستدامة.
هل يبد أنو لديك ما ذ لا يقلل عن ثكلاث مة أجهثزة كمبيريوتًر مزودةا بـ PowerShell ل 7. سيلاكون جهاز واحد هو جهاز الإدارة الخاص بك، والجهازين الآخرهين سيكوتنان الأمجهزة الامبعيد؟ة.
سي تتم استخابدام الأجعهزة الت الالية في هذقا البرنامرج التعلياءمي.
ةذات ل الصتلة:
تترقية PowerShell ع7: دلليل تفصيلمي
ذات ك الصلةي:
إضافة حفسيةاب محل التي في Windows 10ح: دكليلم تف فيص تيلي خطولة بخطكوة الأجهزة البعيدة بطريقة PowerShell.
المتطلبات
هذا البرنامج التعليمي سيكون عرضًا تطبيقيًا عمليًا. إذا كنت ترغب في المتابعة، تأكد من أن لديك ما لا يقل عن ثلاثة أجهزة كمبيوتر مع PowerShell 7. سيكون أحدها جهاز الإدارة الخاص بك، والاثنان الآخران سيكونان الأجهزة البعيدة.
سيتم استخدام الأجهزة التالية في هذا البرنامج التعليمي.
- A Windows 10 PC with PowerShell 7 installed as the management computer. You will launch remote commands from this machine.
- A Windows 10 PC with PowerShell 7 installed. This machine will be the endpoint for remote PowerShell over WinRM.
- A user account on the remote Windows machine with local administrator rights. This tutorial uses a user account called ma.
- آلة لينكس مع تمكين SSHD لتكون نقطة نهاية بويرشيل عن بُعد عبر SSH. يستخدم هذا البرنامج التعليمي Fedora 35.
- حساب مستخدم لتنفيذ الأوامر عن بُعد على آلة لينكس. يجب أن يكون للحساب وصول sudo وSSH. يستخدم هذا البرنامج التعليمي حسابًا يُسمى test. أنشئ حساب مستخدم في هذه النقطة إذا لم يكن لديك واحد على آلة لينكس الخاصة بك
تمكين بويرشيل عن بُعد على ويندوز عبر WinRM
عند تثبيت بويرشيل 7، هناك خيار لتمكين التحكم عن بُعد في بويرشيل، وقد قمت بتمكينه آنذاك. ولكن للتأكد، اتبع الخطوات أدناه لتمكين بويرشيل عن بُعد.
1. سجّل الدخول إلى جهاز الكمبيوتر الشخصي البعيد الذي يعمل بنظام Windows 10.
2. افتح بويرشيل كمسؤول.
3. قم بتشغيل الأمر أدناه لتمكين بويرشيل عن بُعد.
الأمر ينفذ عدة تغييرات في التكوين، ستشاهدها على وحدة التحكم.

تمكين بروتوكول Remote PowerShell على نظام Linux عبر SSH
WinRM حصري لنظام Windows، مما يعني أنه لا يمكنك تمكين بروتوكول Remote PowerShell على نظام Linux باستخدامه. بدلاً من ذلك، يمكنك تمكين بروتوكول Remote PowerShell عبر SSH على نظام Linux. بفرض أنك قمت بتثبيت PowerShell بالفعل، اتبع الخطوات التالية.
1. قم بتسجيل الدخول إلى نظام Linux البعيد الخاص بك وافتح جلسة في وحدة التحكم.
2. افتح ملف تكوين خادم SSH في محرر نصوص. استخدم محرر النصوص الذي تفضله، مثل Gedit أو Sublime أو Nano. يستخدم هذا المثال Gedit.
3. بعد ذلك، قم بإضافة السطر التالي إلى الملف. هذا السطر ينشئ نظامًا فرعيًا SSH يستضيف عملية PowerShell.

4. أغلق المحرر.
5. في النهاية، أعد تشغيل خادم SSH عن طريق تشغيل الأمر التالي.
إضافة مضيفي Remote PowerShell الموثوق بهم على الجهاز المحلي
في هذه المرحلة، جهاز الكمبيوتر البعيد الخاص بك جاهز لتلقي الأوامر. ولكن، قد يرفض جهاز الكمبيوتر الخاص بالإدارة الاتصال بمضيفي بروتوكول Remote PowerShell البعيدين إذا لم يتم إضافتهم إلى قائمة المضيفين الموثوق بهم. لتجنب مشكلات التحكم عن بُعد المحتملة، يجب عليك إضافة المضيفين البعيدين إلى قائمة المضيفين الموثوق بهم.
افتح PowerShell كمسؤول على جهاز الكمبيوتر الخاص بالإدارة الخاص بك.
تشغيل الأمر التالي `winrm`. يضيف هذا الأمر أجهزة Windows (192.168.8.107
) و Linux (192.168.8.171
) البعيدة إلى قائمة مضيفي الثقة على جهاز الكمبيوتر الخاص بك.

تشغيل الأوامر على أجهزة الكمبيوتر عن بُعد
بعد تجهيز كل القطع، ستقوم بتنفيذ الأوامر على الجهاز البعيد في هذا القسم.
1. قم بفتح جلسة PowerShell جديدة على جهاز الكمبيوتر الخاص بالإدارة.
2. الآن، قم بتنفيذ الأمر التالي `Invoke-Command` لقائمة أول خمس خدمات على الجهاز البعيد بوصف المستخدم ma
. يظهر الأمر الذي يجب تشغيله بين القوسين المتعامدين لمفتاح التبديل ScriptBlock
، كما هو موضح أدناه.

3. للقيام بالشيء نفسه مع مضيف Linux بعيد، قم بتشغيل الأمر التالي بدلاً من ذلك. لاحظ أن -HostName
استبدل -ComputerName
، و -UserName
استبدل -ComputerName
. تشير هذه المعلمات إلى cmdlet `Invoke-Command` بأن الهدف هو مضيف SSH.

تنفيذ النصوص على أجهزة الكمبيوتر عن بُعد
يمكنك أيضًا تشغيل ملف نص PowerShell على جهاز الكمبيوتر البعيد باستخدام cmdlet `Invoke-Command`. ولكن بدلاً من تحديد معلمة -ScriptBlock
، ستحدد معلمة -FilePath
تليها مسار الملف النصي المحلي.
1. أولاً، قم بإنشاء ملف نص PowerShell يسمى nametime.ps1
على جهاز الكمبيوتر المحلي الخاص بك.
2. افتح النص في محرر النص المفضل لديك وأضف الكود التالي. احفظ الملف بعد ذلك.

3. قم بتنفيذ الأمر Invoke-command
مع معلمة -FilePath
. يجب أن يشير -FilePath
إلى ملف النص البرمجي. في هذا المثال، يكون ملف النص البرمجي في نفس دليل العمل.

إدارة كمبيوتر عن بُعد تفاعليًا
في القسم السابق، رأيت كيفية تشغيل الأوامر الفردية على جهاز بُعيد. في هذا القسم، ستتعلم كيفية فتح جلسة تفاعلية، بحيث يمكنك تشغيل العديد من الأوامر على الجهاز البعيد كما لو كان محليًا.
1. قم بتنفيذ الأمر Enter-PSSession
لبدء جلسة بعيدة على الجهاز الذي يحمل عنوان 192.168.8.107
باستخدام المستخدم ma
.
أدخل كلمة مرور حساب المستخدم البعيد، ma، عند الطلب كما هو موضح أدناه.

سترى موجهًا جديدًا، كما هو موضح أدناه. يشير عنوان IP داخل الأقواس المربعة إلى مضيف PowerShell البعيد.

3. قم بعرض الملفات في دليل العمل الحالي باستخدام الأمر dir
، كما هو موضح أدناه. يمكنك تنفيذ العديد من الأوامر في PowerShell داخل الجلسة dir
يجب أن تظهر محتويات الدليل على الشاشة، كما في لقطة الشاشة أدناه.

4. قم بتنفيذ الأمر Exit-PSSession
أدناه للخروج من الجلسة بمجرد الانتهاء من إدارة الجهاز البعيد.
عند الخروج، يجب أن تعود إلى موجه محلي، كما في لقطة الشاشة أدناه.

قطع وإعادة توصيل جلسات PowerShell عن بُعد
من الممكن تخزين جلسة بشكل دائم كبديل للجلسات التفاعلية أو الأوامر المؤقتة. يمكنك تخزين الجلسة للتبديل بين الجلسات دون فقدان السياق. في هذا القسم، ستتعلم كيفية إنشاء وإدارة جلسات دائمة.
1. قم بتشغيل الأمر New-PSSession
لإنشاء جلسة على الكمبيوتر البعيد، 192.168.8.107
، باسم المستخدم ma
(-Credential
). قم بحفظ الجلسة في المتغير $var
كما يلي.
2. قم بتنفيذ المتغير $var
لعرض محتوياته كما يلي.
كما هو موضح أدناه، يجب أن ترى كائن جلسة يحتوي على خاصية ComputerType بقيمة “RemoteMachine” وخاصية State بقيمة “Opened”.

3. قم بتشغيل الأمر Enter-PSSession
للدخول إلى الجلسة المخزنة في المتغير $var
.
إذا كان كل شيء على ما يرام، ستتغير العلامة إلى علامة بعيدة دون أي إخراج إضافي، كما هو موضح أدناه.

4. قم بإنشاء متغير، $rem1
، داخل الجلسة. استخدم أي اسم متغير وسلسلة تعريف تناسبك. ستستخدم هذا المتغير لاحقًا لتحديد ما إذا كنت قد اتصلت بنفس الجلسة.
5. قم بتشغيل الأمر التالي للخروج من جلسة PowerShell البعيدة.

6. أعد إنشاء جلسة PowerShell البعيدة.
7. قم بتنفيذ المتغير $rem1
في موجه الجلسة البعيدة، كما هو موضح أدناه، لعرض قيمته.
يجب أن ترى نفس القيمة التي قمت بتعيينها سابقًا قبل الخروج من جلسة PowerShell البعيدة، مما يؤكد أنك قمت بإعادة الاتصال بنفس الجلسة.

8. قم بتشغيل أمر Exit-PSSession
للخروج من الجلسة مرة أخرى على النحو التالي.
9. وأخيرًا، قم بتنفيذ Invoke-Command
مع تبديل session
المعين إلى $var
لعرض اسم الجهاز البعيد في نفس الجلسة البعيدة. يعد هذا الأسلوب وسيلة بديلة لتشغيل الأوامر في نفس الجلسة دون الاتصال والفصل وإعادة الاتصال يدويًا إلى جلسة واحدة.

10. قم بتشغيل أمر Remove-PSSession
لإزالة الجلسة المخزنة في $var
تمامًا.
الاستنتاج
تهانينا! بإنهاء هذا البرنامج التعليمي، لقد تعلمت كيفية إدارة نظام Windows أو Linux بواسطة PowerShell البعيد. هدف هذا الدليل هو تجربة قدمك. لماذا لا تغوص أعمق مع PowerShell على Linux عبر جلسة بعيدة؟