إذا كنت تدير خوادم Windows ، فمن المحتمل أنك قد تعمل مع خدمة Internet Information Services (IIS). المواقع الإلكترونية هي أحد الميزات الرئيسية لخدمة IIS، وباستخدام PowerShell ، يمكنك بسهولة إدارة IIS وتشغيلها تلقائيًا باستخدام نصوص PowerShell IIS!
في هذه المقالة ، سيتم تقديم طريقة جديدة لإدارة IIS باستخدام PowerShell. باستخدام التقنيات الموجودة في هذه المقالة ، يمكنك بسهولة بناء نصوص PowerShell IIS لإنشاء وإدارة مواقع IIS.
لإدارة IIS باستخدام PowerShell ، يتطلب ذلك أحد وحدتي البرامج PowerShell – WebAdminstration أو IISAdminstration. تغطي هذه المقالة وحدة IISAdministration الأحدث. يوفر الفيديو المرافق لهذه المقالة وحدة WebAdministration الأقدم إذا كنت ترغب في رؤية طريقة بديلة.
معرفة كيفية إدارة موقع ويب بسيط حتى لشركتك أو للعالم بأسره سيميزك عن بقية أقرانك. ستساعدك الأقسام التالية في هذه المقالة في تعلم كيفية إنشاء وإدارة موقع ويب في IIS. ستتعلم أيضًا كيفية إدارة برك تطبيقات الويب باستخدام بعض أوامر PowerShell.
وحدة IISAdministration مقابل WebAdministration
لديك خيارين لإدارة IIS. يمكنك استخدام WebAdministration أو IISAdministration. ولكن أيهما يجب أن تستخدم؟
إذا كنت تستخدم IIS 10.0 أو أحدث ، فإن وحدة IISAdministration الأحدث توفر العديد من التحسينات على وحدة WebAdministration الأقدم.
إليك بعض النقاط البارزة:
- تقدم أوامر IISAdministration دعمًا أفضل للأنابيب وتتطور بشكل أفضل.
- بالمقارنة مع أوامر IIS القديمة ، تحتوي IISAdministration على رمز أكثر كفاءة.
- أوامر IISAdministration أبسط وتوفر وصولًا مباشرًا إلى مدير الخادم.
سيتم التركيز في هذه المقالة على وحدة IISAdministration الحديثة.
المتطلبات الأساسية
ستكون هذه المقالة عملية. إذا كنت تنوي متابعة الإرشادات ، تأكد من توفر المتطلبات الأساسية التالية.
- الحد الأدنى لـ Windows PowerShell 5.1 أو PowerShell 6+
- وحدة IISAdministration PowerShell من معرض PowerShell
- تم تمكين ميزة IIS 10.0 Windows

من المستحسن أن تكون على دراية بأساسيات HTML. سيكون هناك خطوة تستخدم فيها HTML دورًا في الأمثلة القادمة. ولكن لا تقلق ، ستتمكن من نسخ ولصق الشفرة!
تم إنشاء جميع الأمثلة في هذه المدونة باستخدام IIS 10.0 على نظام التشغيل Windows 10 و PowerShell 7 Preview 6. تعتبر أوامر IISAdministration هي نفسها لـ Windows Server 2016 و 2019 وتعمل مع Windows PowerShell 5.1.
هذا كل شيء بالنسبة للأدوات المستخدمة ، الآن للموارد المطلوبة لمتابعة الإرشادات.
تثبيت وحدة IISAdministration
بمجرد توفر المتطلبات الأساسية ، حان الوقت للقيام ببعض الإعدادات. لحسن الحظ ، ليس هناك الكثير من الإعدادات للقيام بها نظرًا لأنه يمكن الحصول بحرية على الـ وحدة PowerShell التي تحتاج إليها (IISAdministration) في PowerShell Gallery.
قم بفتح نافذة سطر أوامر PowerShell مرتفعة على الخادم الويب الخاص بك وقم بتثبيت الوحدة باستخدام الأمر التالي.
إذا لم يكن لديك وصول إلى الإنترنت ، يمكنك تنزيل الوحدة إلى جهاز آخر ونسخ الوحدة إلى دليل الوحدات الخاص بك. تحقق من وثائق الأمر
Save-Module
.
اكتشاف الأوامر المتاحة
كما هو الحال مع أي وحدة PowerShell قد لا تكون ذات خبرة فيها ، يجب عليك استخدام أحد الأوامر الأولى لاكتشاف مجموعة الأوامر في الوحدة وهو Get-Command
. باستخدام الأمر Get-Command -Module 'IISAdministration'
كما هو موضح أدناه ، ستتمكن من رؤية ما هو ممكن مع هذه الوحدة.
على الرغم من أنك ستتعلم بعض الإجراءات الشائعة لاتخاذها على المواقع ، إلا أن هذه الأوامر ستعطيك فكرة عن كل ما يمكنك القيام به.

الآن لديك قائمة بالأوامر المتاحة. حان الوقت لبدء إنشاء موقع.
إنشاء أول موقع ويب الخاص بك
لكي تحصل على موقع على الإنترنت يمكن العمل عليه، لنقم أولاً بإنشاء موقع الويب. للقيام بذلك، يجب أن نقوم بخطوة أولى وهي إنشاء دليل لحفظ محتوى الويب. بالإضافة إلى ذلك، ستحتاج إلى ملف HTML في هذا الدليل ليتم عرضه بواسطة IIS. سيكون هذا الدليل هو الدليل الذي سيستخدم في الأمثلة اللاحقة.
إنشاء مجلد الويب والصفحة
أولاً، قم بإنشاء دليل. يمكنك استخدام cmdlet “New-Item” للقيام بذلك. ستقوم الشفرة أدناه بإنشاء دليل في المسار C:\MyWebsite.
يمكنك اختيار أي مسار تريده باستخدام الشفرة أعلاه. لتبسيط الأمور، ستستخدم مسارات عامة.
بمجرد إنشاء الدليل، حان الوقت لإنشاء ملف HTML سيكون الصفحة الرئيسية لموقع الويب الجديد الخاص بك.
قم الآن بإنشاء ملف يسمى index.html في المسار C:\Mywebsite كما هو موضح أدناه.
بمجرد إنشاء الملف، قم بفتحه في محرر النصوص المفضل لديك وانسخ والصق الشفرة التالية في ذلك الوثيقة. هذا الكود HTML هو صفحة بسيطة ستستخدم للتأكد من تكوين IIS بشكل صحيح عند الانتهاء.
إنشاء موقع IIS
حان الآن الوقت لجعل الصفحة التي تم إنشاؤها متاحة للعالم لمشاهدتها. للقيام بذلك، ستحتاج إلى إنشاء دليل افتراضي. يحتوي الدليل الافتراضي على جميع الأصول والموارد المستخدمة للصفحة المقدمة.
بشكل افتراضي ، يقوم IIS بإنشاء مجلد افتراضي تحت C: \ inetpub \ wwwroot. يحتوي المجلد على جميع محتويات صفحة الويب الافتراضية والموارد لـ IIS. يمكنك أيضًا استخدام المجلد الافتراضي C: \ inetpub \ wwwroot لتخزين الملفات الخاصة بك ، ولكن في هذه الأمثلة ، لن يتم استخدامه للحفاظ على مسارات قصيرة قدر الإمكان. لهذا السبب ، ستستخدم C: \ MyWebsite بدلاً من ذلك.
لإنشاء مجلد افتراضي جديد (موقع) ، استخدم الأمر New-IISSite
. يسمح لك هذا الأمر بإنشاء موقع ويب IIS.
لهذه المقالة ، قم بإنشاء موقع ويب يسمى Mywebsite يشير إلى المجلد C: \ MyWebsite الذي يستمع على المنفذ 8088. في مقتطف الشفرة أدناه ، يمكنك رؤية كيفية القيام بذلك باستخدام أمر New-IISSite
.
الجزء الوحيد الذي قد يكون مربكًا هو معلمة BindingInformation
. تسمح هذه المعلمة فقط بـ بناء الجملة الاستعارية. في هذا المقتطف ، سيقوم New-IISSite
بإنشاء موقع ويب مرتبط بعنوان IP (العلامة * هي نفس 127.0.0.1) ، منفذ TCP للاستماع ثم أي عناوين HTTP.
يمكن شرح بناء الجملة الاستعارية على أنه بروتوكول ، تليه المصدر: المنفذ: الوجهة. في هذا المثال ، قمت بتكوين IIS للاستماع إلى طلبات HTTP من أي عنوان IP () على المنفذ 8088 والوجهة هي localhost.*
بمجرد إنشاء الموقع ، يمكنك تشغيل Get-IISSite
لتفحص مظهره كما هو موضح أدناه.

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

تهانينا! لقد قمت للتو بإعداد أول موقع ويب على IIS باستخدام PowerShell!
الآن بمجرد أن يكون لديك موقع ويب يعمل ، حان الوقت لتعلم كيفية إدارة موقع الويب الخاص بك وخادم IIS الذي يستضيفه.
إدارة موقع IIS
بمجرد أن يكون الموقع الإلكتروني قيد التشغيل ، فمن المؤكد أنك ستحتاج إلى أداء إجراءات شائعة مثل إيقاف وبدء الموقع. على سبيل المثال ، إذا كان هناك تحديثات تحتاج إلى إجرائها على الموقع ، فيبدو أنه يجب إعادة تشغيل الموقع أحيانًا.
لإدارة الموقع في PowerShell ، لديك اثنين من أوامر الأدوات للعمل معها – Start-IISSite
و Stop-IISSite
. تعمل هاتان الأمرين بشكل مشابه لكيفية عمل أوامر الخدمة Stop-Service
و Start-Service
.
إيقاف موقع ويب مشابه لإيقاف خدمة Windows. أنت تمنع أو تسمح بالوصول إلى الموقع الذي يمكن الوصول إليه عبر بروتوكول يخدم على منفذ فريد بواسطة IIS. ومع ذلك ، لا تقوم بإيقاف المضيف IIS. يمكن إيقاف وتشغيل المواقع بشكل فردي.
التوقف عن موقع واحد
لإيقاف موقع IIS، يتم استخدام أمر الـ Stop-IISSite
. بشكل افتراضي، يجب أن يكون الموقع الذي قمت بإنشائه سابقًا في حالة “تشغيل”. إذا قمت بإيقاف الموقع وبالتالي منع الوصول إلى MyWebsite، قم بتشغيل الأمر Stop-IISSite
مع توفير الاسم كما هو موضح أدناه. يتوقف هذا الكود عن تقديم موقع MyWebsite عن طريق خادم IIS. بعد إيقاف الموقع، لن تتمكن من الوصول إليه.
يتم عرض مثال على تفقد حالة الموقع كـ “تشغيل”، وإيقافه ثم التحقق من الحالة مرة أخرى كما هو موضح أدناه. في هذا المثال، أنت:
- تحصل على حالة موقع MyWebsite باستخدام
Get-IISSite
. - تنفيذ أمر
Stop-IISSite
ضد موقع MyWebsite. هذا الأمر يغلق الوصول إلى الموقع. نظرًا لأن هذا الإجراء يجري تغييرات تشغيلية، سيتم طلب تأكيد منك. - تشغيل
Get-IISSite
مرة أخرى للتحقق من أن موقع MyWebsite قد توقف عن العمل من خلال ملاحظة الحالة “توقف”.

إيقاف جميع المواقع
أعلاه، قمت بإيقاف موقع واحد لكن يمكنك أيضًا إيقاف جميع المواقع بسهولة. من خلال استخدام الأنبوبة وتمرير نتيجة الأمر Get-IISSite
إلى Stop-IISSite
، ستقوم PowerShell بتعداد جميع المواقع وإيقافها جميعًا. في مثال الكود أدناه، يتم استخدام مفتاح التبديل الاختياري Verbose
لعرض مزيد من المعلومات.

يمكنك أيضًا إيقاف جميع المواقع في IIS عن طريق إيقاف W3SVC أو خدمة النشر العالمية على الويب. إيقاف خدمة Windows يؤدي إلى إيقاف IIS ومنع تقديم جميع المواقع. ومع ذلك ، قد تظهر المواقع لا تزال في حالة بدء التشغيل إذا قمت بذلك.
بدء تشغيل موقع واحد
لنفترض أنك قمت ببعض التغييرات على موقع MyWebsite وتحتاج إلى إعادة تشغيله مرة أخرى. حان الوقت لاستخدام أمر Start-IISSite
. للقيام بذلك ، قم بتحديد الاسم بنفس الطريقة التي استخدمتها في استخدام أمر Stop-IISSite
.
عند تنفيذه ، يمكنك ثم فحص الحالة مرة أخرى باستخدام Get-IISSite
. عند القيام بذلك ، يجب أن ترى إخراجًا مشابهًا للتقاط الشاشة أدناه.

Get-IISSite
and starting the site with Start-IISSite
والآن يجب أن يكون الموقع متاحًا مرة أخرى على http://localhost:8088 إذا قمت بتحديث المتصفح الخاص بك.
بدء تشغيل جميع المواقع
بشكل مماثل لكيفية إيقاف نشر جميع المواقع ، يمكنك استخدام الأنابيب لبدء جميع مواقع الويب على مضيف IIS الخاص بك أيضًا.
مرة أخرى ، تحصل على جميع مواقع IIS التي تتم تقديمها واستخدام الأنبوب لبدء كل واحدة. يجب أن يكون إخراجك مشابهًا للتقاط الشاشة أدناه.

إدارة ربطات الويب
حان الوقت الآن للقيام ببعض المهام الإدارية الشائعة على موقع MyWebsite. إحدى المهام الشائعة هي تغيير ربطات الويب.
عند إنشاء موقع MyWebsite ، استخدمت بناء الجملة المرتبطة بـ *: 8088: . تمثل هذه البناء الجملة الاستماع على عنوان IP 127.0.0.1 ، في المنفذ 80 بدون رؤوس HTTP. لنفترض الآن أنك قررت أن ترغب في أن يستمع الموقع بدلاً من ذلك على المنفذ 9000. للقيام بذلك ، ستحتاج إلى تعديل ربط الموقع.
فحص الربط الحالي
قبل أن تتمكن من تغيير ربط الموقع ، يجب أن تفحص التكوين الحالي أولاً. أحد الطرق للقيام بذلك هو فحص خاصية الربط المُرجَعة بـBinding
التي تُرجعها Get-IISSite
. لاحظ في مقتطف الشفرة التالي كيفية القيام بذلك. في المقتطف ، يتم استعلام Get-IISSite
عن الموقع MyWebSite وإعادة الخاصية Bindings
فقط.
عندما تفحص فقط خاصية الربط ، ستعيد PowerShell كائنًا يحتوي على بعض المعلومات المختلفة كما هو موضح أدناه.

إذا كنت ترغب في رؤية معلومات الربط فقط ، يمكنك الإشارة بشكل محدد إلى خاصية bindingInformation
كما هو موضح أدناه.

إزالة الربط
إذا كنت ترغب في تغيير المنفذ الذي يستمع عليه الموقع ، يجب عليك أولاً إزالة الربط الحالي الذي يربطه بتلك المنفذ. لإزالة الربط ، يجب عليك أولاً إيقاف التشغيل للموقع.
بمجرد توقف الموقع ، يمكنك الآن إزالة الربط الحالي الذي يربط الموقع MyWebsite بالمنفذ 8088. للقيام بذلك ، يمكنك استخدام أمر Remove-IISSiteBinding
.
لإزالة الربط بـ MyWebsite كما تم تعريفه سابقًا، يمكنك رؤية مثال استخدام Remove-IISSiteBinding
في الأسفل للقيام بذلك. في الأسفل، تقوم بتوفير اسم الموقع وتحديد بناء الربط الذي تم اكتشافه سابقًا.
عند تنفيذ الكود، ستتلقى استفسارًا لتأكيد قرارك لأنك تقوم بشيء مدمر كما هو موضح في الأسفل.

لا يوجد حد لعدد الروابط التي يمكن أن تمتلكها. يمكنك بسهولة الاحتفاظ بالربط الأصلي وإضافة منفذ TCP 9000 كربط جديد.
الآن يمكنك تشغيل Get-IISSite -Name 'MyWebsite'
مرة أخرى. سترى الآن أن معلومات الربط قد تمت إزالتها كما هو موضح بالقيمة الفارغة تحت Bindings
.

على الرغم من أن الموقع منشور، إلا أن IIS ليس لديه طريقة لمعرفة كيفية توجيه حركة المرور إلى موقعك.
من المهم أن يكون لديك على الأقل ربط واحد معين لموقعك. لإظهار أهمية ذلك، حاول التنقل إلى http://localhost:8088/index.html مرة أخرى. إذا كنت تستخدم متصفح الويب Mozilla Firefox، قد ترى هذه الرسالة أدناه.

إنشاء روابط جديدة
في القسم السابق، قمت بإزالة الربط الوحيد الذي كان لـ MyWebsite. وبالرغم من أن هذا قد أفسد الموقع، إلا أنه مشكلة مؤقتة فقط. حان الوقت لتصحيح هذه المشكلة عن طريق إنشاء ربط جديد.
لإنشاء ربط جديد، استخدم cmdlet New-IISSiteBinding
. حيث تحتاج إلى ربط منفذ 9000 بموقع MyWebsite الآن، حدد بناء الربط الصحيح كما هو موضح أدناه.
بمجرد إنشاء الربط الجديد، قم بتشغيل الموقع مرة أخرى باستخدام Start-IISSite
. تذكر أنه لإنشاء الربط الجديد، يتطلب منك IIS أن يتم إيقاف تشغيل الموقع.
عندما يبدأ الموقع مرة أخرى، يجب أن تتمكن الآن من الوصول إليه على المنفذ 9000. للتحقق من ذلك، افتح متصفح الويب الذي تفضله وانتقل إلى http://localhost:9000. يجب أن ترى الآن أن الصفحة الويب تعمل مرة أخرى على المنفذ 9000.

إزالة موقع الويب
إذا كنت قد اجتزت للتو برنامج تعليمي ولا تنوي الاحتفاظ بموقع MyWebsite إلى الأبد، فمن الوقت الآن لتنظيفه. لإزالة موقع، استخدم تعليمة البرمجة Remove-IISSite
.
إزالة موقع IIS يمكن أن تكون عملية خطرة خاصة إذا كنت تقوم بإزالة موقع على IIS يستضيف مواقع إنتاج أخرى. للتحقق من أنك تقوم بإزالة الموقع الصحيح، يُوصى باستخدام المعلمة الشائعة WhatIf
في PowerShell. تسمح لك هذه المعلمة بفحص ما سيكون سيحدث إذا تم تنفيذ الأمر.
يمكنك رؤية مثال على إزالة موقع MyWebsite باستخدام معلمة WhatIf
أدناه.

-WhatIf
!إذا كان كل شيء يبدو جيدًا، اترك الشريط الأمان وأعد تشغيل الكود، هذه المرة بدون معلمة -WhatIf
.
عند استخدام تعليمة البرمجة
Remove-IISSite
، لا يتم حذف الموقع. يتم إزالته من تكوين IIS. تظل الملفات التابعة للموقع سليمة.
ملخص
في هذه المقالة، تعلمت كيفية إنشاء موقع ويب باستخدام وحدة إدارة IIS. لقد رأيت كيفية أداء العمليات الإدارية اللازمة للحفاظ على موقع ويب. الآن تعرف بما فيه الكفاية من الأساسيات للعمل مع أي مضيف IIS حديث باستخدام PowerShell!