WinRM وPowerShell Remoting هما ميزة حاسمة عند إدارة أجهزة الكمبيوتر البعيدة التي تعمل بنظام Windows. تشبه WinRM ، مثل غيرها من الخدمات، في الاستماع على منافذ محددة في ظروف محددة. في هذا البرنامج التعليمي، تعرف على تلك المنافذ في WinRM وحتى كيفية تغييرها إذا لزم الأمر.
ذات الصلة: PowerShell Remoting: دليل النهائي
مستمع WinRM
أحد أهم أجزاء WInRM (والمنافذ التي يعمل عليها) هو مستمع WinRM.
يعتبر المستمع WinRM خادم ويب في جوهره. يتفاعل مع HTTP و HTTPS وفي الأيام القديمة قبل Windows 7 كان يستخدم حتى افتراضيًا نفس المنفذ 80 والمنفذ 443 الذي تستخدمه معظم خوادم الويب.
المستمع يعمل كخدمة على جهاز الكمبيوتر الخاص بك وينتظر تأسيس الاتصالات، تمامًا كما يفعل خادم الويب العادي.
A WinRm listener can listen two different ways; HTTP or HTTPS. The WinRM port for HTTP is 5985 while the WinRm port for HTTPS is 5986, by default.
- HTTP – المنفذ 5985
- HTTPS – المنفذ 5986
ذات الصلة: PowerShell Remoting: دليل النهائي
أخطاء الاتصال بالمنافذ الخاطئة
وإذا لم تقم بإضافة قاعدة جدار الحماية عند تغيير المنفذ، ستحصل على نفس الرسالة حتى عند توفير المنفذ بهذه الطريقة.
تغيير منافذ WinRM
على الرغم من أن Microsoft توصي بالبقاء على المنافذ الاستماع الافتراضية لضمان التوافق وسهولة الاستخدام، يمكنك تغييرها. قد تكون هذه مفيدة في حالات تعارض المنافذ الافتراضية أو حظر الحماية الجدارية لاستخدام تلك المنافذ.
ربما لديك نظام مُعدَّل يُكوّن للاتصال بـ WinRM عبر منافذ مُخصَّصة. عندما تحاول الاتصال كالمعتاد، ستتلقى رسالة الخطأ التالية:

إذا كان الأمر كذلك، فمن الوقت لتغيير منفذ WinRM على جانب الخادم!
لتغيير منافذ WinRM، ستحتاج أولاً إلى معرفة ما إذا كان لديك بالفعل خدمة تستمع على تلك المنافذ.
تعقّب الاتصالات الحالية
أسهل طريقة لاكتشاف المنافذ التي يتم استخدامها على جهاز Windows هي استخدام أداة netstat
الأداة. يقوم Netstat بفحص جميع المنافذ النشطة على النظام الخاص بك وإذا كانت نشطة، يُعيد العنوان IP والوجهة والمنفذ المستخدم.
لتتبع المنافذ الخاصة بالاستماع قبل تغيير WinRM، قم بتشغيل netstat -aon
. مفاتيح -aon
:
- تظهر جميع الاتصالات النشطة (
a
) - تظهر معرف العملية للعملية التي فتحت الاتصال (
o
) - لا تحاول حل أي أسماء DNS لعناوين IP الوجهة (
n
)

إذا كان هناك خادم ويب يستمع على المنفذ 80، على سبيل المثال، سترى سطرًا حيث انتهى العنوان المحلي بـ :80
تحت العمود العنوان المحلي
. هذا الصف هو المكان الذي سترى فيه PID
أو مُعرّف العملية التي تستخدم الاتصال.
بمجرد معرفة رقم معرف العملية (PID)، يمكنك الإشارة إلى رقم معرف العملية للعثور على اسم العملية باستخدام شيء مثل أمر PowerShell Get-Process
.

على الرغم من ذلك، يمكنك رؤية أعلاه أن اسم العملية هو فقط System. وهذا يعني أن العملية متكاملة إلى حد كبير داخل نظام التشغيل وربما تكون مدمجة في ويندوز.
ضبط منافذ توافق WinRM
يتمتع WinRM بميزة تسمى “منافذ التوافق” (compatibility ports). توجد منافذ التوافق لتكون متوافقة مع بعض الأنظمة القديمة التي تعمل فقط على المنافذ 80 للبروتوكول HTTP و443 للبروتوكول HTTPS. إذا كنت بحاجة لتغيير WinRM للاستماع على هذه المنافذ، قم بتمكين مستمعي التوافق.
بمجرد معرفتك أنه ليس لديك أي شيء آخر يعمل على منافذ 80 و 443، ضبط مستمعي WSMan لاستخدام منافذ التوافق (80 للبروتوكول HTTP و443 للبروتوكول HTTPS).
ضبط WinRM للاستماع على أي منفذ
إذا كنت، لأي سبب من الأسباب، بحاجة إلى تكوين WinRM للاستماع على منفذ غير قياسي، فيمكنك ذلك أيضًا. للقيام بذلك:
- ابحث عن اسم المستمع. يمكنك القيام بذلك عن طريق تعداد جميع مستمعي WinRM باستخدام أمر
Get-Item
. الأمر أدناه يقوم بعرض جميع المستمعين (*
) المثبتة حاليًا.

2. بعد ذلك، باستخدام اسم المستمع المعروض أعلاه، قم بتكوين كل مستمع باستخدام Set-Item
وتوفير مسار المستمع ورقم المنفذ الذي ترغب في تغييره إليه.
3. في هذه النقطة، يتم الاستماع إلى مستمعي WinRM على المنافذ الصحيحة، ربما يقوم جدار الحماية الخاص بنظام التشغيل Windows برفض أي اتصالات عن بعد إلى تلك المنافذ. تحتاج إلى فتح تلك المنافذ. للقيام بذلك، قم بتشغيل الأمر التالي. الكود New-NetFirewallRule
أدناه يقوم بإنشاء قاعدة جدار حماية Windows للسماح بجميع الاتصالات الواردة ببروتوكول TCP إلى منفذ مخصص.
ذات الصلة: تعطيل جدار الحماية في Windows: اكتشف الطرق العديدة
إذا كنت لم تقم بفتح منفذ جدار حماية Windows المناسب، فستحصل على رسالة مثل هذه عند محاولة الاتصال:

الاتصال بمنفذ مخصص باستخدام PSRemoting
الآن بعد أن قمت بإعداد وتكوين WinRM بنجاح على خادم WinRM، تحتاج إلى اختبار الاتصال بالعميل WinRM. للقيام بذلك يتطلب معلمة إضافية واحدة فقط؛ Port
.
باستخدام أي من أوامر PSRemoting مثل Invoke-Command
أو Enter-PSSession
، قم بتحديد المعلمة Port
والمنفذ المعد لإجراء اتصال بنجاح.
