مدیریت IIS در پاورشل

آموزش مدیریت IIS در پاورشل
Avatar
نویسنده: مدیا روشن
یکشنبه 4 فروردین 1398
مطالعه: ۱۷ دقیقه ۰ نظر ۹۹۲ بازدید

اگر شما فردی هستید که به طور مداوم سرورهای ویندوز را مدیریت می کنید، احتمالا با خدمات اطلاعات اینترنتی و یا به اختصار IIS کار کرده اید. وب سایت ها از ویژگی های اصلی IIS به شمار می روند و با استفاده از پاورشل می توانید وب سایت‌های IIS را به راحتی مدیریت و خودکارسازی کنید. در این مقاله آموزش پاورشل قصد داریم به تمام نکاتی که در مورد این ویژگی وجود دارند بپردازیم و تکنیک های چگونگی ساخت یک اسکریپت پاورشل را به منظور ایجاد یک وب سایت IIS آموزش دهیم. برای فراگیری این دستور باید تمام حواس خود را معطوف به آن کنید. هر چقدر تسلط بیشتری را پیدا کنید، راحت تر می توانید به کار با آن بپردازید.

خرید سرور ویندوز برای مدیریت IIS در پاورشل از پارس پک

از این مقاله می‌‌توانید برای مدیریت سرویس‌های ویندوز خود استفاده کنید و اگر قصد خرید انواع سرویس ویندوز پارس پک را دارید، می‌توانید با کارشناسان فروش ما در ارتباط باشید. همچنین، می‌توانید جهت کسب‌ اطلاعات بیشتر به لینک‌های زیر مراجعه کنید.

چگونگی مدیریت IIS در پاورشل

برای مدیریت IIS با پاورشل به یکی از دو ماژولی که در پاورشل وجود دارد، نیاز دارید. این دو ماژول به نام های WebAdminstration و IISAdminstration شناخته شده اند. ماژول هایی که مدرن تر می باشند قابلیت پوشش دادن IISAdminstration را دارند. WebAdminstration نیز یکی از ماژول هایی می باشید که قدیمی تر از سایر موارد است.
اگر بتوانید که مدیریت چندین وب سایت را بر عهده بگیرید، هر چند اگر این وب سایت ساده باشد، دارای یک ویژگی متمایز نسبت به دیگر افراد هستید. زیرا توانایی مدیریت وب سایت یک ویژگی بسیار منحصر به فردی است که افراد را متمایل به یادگیری آن می کند. حال در این مقاله می توانید با مطالبی که در ادامه آورده می شود، آشنا شوید و به خوبی آن ها را فرا بگیرید.

ماژول های IISAdminstration در مقابل WebAdminstration

به طور کلی شما دو گزینه برای مدیریت IIS دارید. این دو گزینه IISAdminstration و WebAdminstration می باشند. حال سوالی که پیش می آید این است که از کدام گزینه استفاده کنیم؟
اگر نسخه IIS شما 10 و یا بالاتر از آن باشد، باید گفت پیشرفت های بسیاری را در آن می توانید ببینید. IISAdminstration حاوی کدهای کارآمدی است که قابلیت های بسیاری را به شما می دهد. همچنین cmdlets هایی که در آن موجود هستند، مقیاس بهتری را ارائه می دهند. همچنین با استفاده از این ماژول می توان زمینه دسترسی مستقیم به مدیر سرور را فراهم کنید. در مقاله تمرکز زیادی را بر روی ماژول IISAdminstration است.

پیش نیازها

برای اینکه بتوانید راحت تر این مقاله را درک کنید و این دستور را بهتر متوجه شوید، نیاز است که یک سری از پیش نیازها را فراهم کنید. این پیش نیازها به صورت زیر می باشند:

  • نسخه پاورشل که برای این توضیحات نیاز است، 5.1 و یا بالای 6 می باشد.
  • ماژول IISAdminstration را باید از گالری و فایل های مربوط به پاورشل بردارید.
  • نسخه 10 از IIS باید فعال شده باشد.

تصویر زیر به خوبی ویژگی هایی ویندوز را نشان می دهد:

نصب ماژول IISAdminstration
نحوه نصب ماژول IISAdminstration

نصب ماژول IISAdminstration

پس از به اتمام رساندن تمامی پیش نیازهای موجود نیاز است که برخی از کارهای تنظیم را انجام دهید. یکی از ویژگی های برتری که شما می توانید از آن بهره مند شوید این است که ماژول IISAdminstration به صورت کاملا رایگان در گالری پاورشل در دسترس شما است. حال نیاز است تا یک کنسول از پاورشل را بر روی سرور وب مد نظر خودتان باز کنید و با استفاده از دستوری که در ادامه آورده خواهد شد، این ماژول را نصب کنید.

PS> Install-Module –Name " IISAdminstration"

کشف cmdlets موجود و در دسترس

یکی از cmdlets هایی که باید برای پیدا کردن موارد دیگر در دسترس از آن استفاده کنید، دستور Get-Command می باشد. با استفاده از دستور زیر می توانید تمام چیزی هایی که در این ماژول وجود دارند را مشاهده نمایید.

Get-Command -Module 'IISAdministration'
کشف cmdlets
کشف cmdlets موجود و در دسترس

تصویر بالا لیستی از cmdlets های موجود و در دسترس است.

ایجاد اولین سایت

برای اینکه یک وب سایت داشته باشید تا بتوانید با آن کارهای مربوطه خود را انجام دهید، نیاز است تا در ابتدا یک وب سایت را ایجاد کنید. اولین قدم برای انجام این کار ایجاد یک دایرکتوری برای ذخیره محتوای وب است. همچنین برای اینکه بتوانید IIS را نمایش دهید، نیاز است تا یک فایل HTML را داشته باشید.

ایجاد پوشه وب و صفحه

برای اینکه بتوانید پوشه وب و صفحه را ایجاد کنید، در ابتدا باید یک دایرکتوری داشته باشید. به منظور انجام این کار می توانید از cmdlet New-Article استفاده کنید. کدی که در زیر آورده خواهد شد، یک دایرکتوری را در C: \ MyWebsite ایجاد خواهد کرد.

PS> New-Item –ItemType Directory –Name "MyWebsite" –Path "c:/"

با دستور بالا می توانید مسیری که می خواهید را انتخاب کنید. اگر می خواهید که امورات را به طور ساده به پیش ببرید و نگه دارید می توانید از مسیرهای کلی استفاده کنید. پس از اینکه دایرکتوری را ایجاد کرده اید، زمان آن رسیده است تا یک فایل HTML را ایجاد کنید. این فایل قرار است صفحه فرود وب سایت شما باشد. حال نیاز است تا فایلی را با نام index.html را در صفحه C: \ Mywebsite ایجاد کنید. دستور زیر به خوبی این موضوع را نشان می دهد:

PS> New-Item -ItemType File -Name 'index.html' -Path 'C:\MyWebsite\'

پس از اینکه پرونده مد نظر را ایجاد کردید، نیاز است تا آن را در ویرایش گر محبوب و مورد علاقه تان باز کنید و سپس کد زیر را در آن کپی و جایگذاری کنید. این نوع HTML تنها یک صفحه بسیار ساده است.
به اسکریپت های زیر توجه کنید:

<!DOCTYPE html>
<html>
<head>
<title>IIS Administration With PowerShell Demo</title>
</head>
<body>
<h1>IIS Administration with PowerShell Demo</h1>
<p>Thank you for reading this post on how to administer IIS with PowerShell!</p>

<p>This page was created using the newer IISAdministration PowerShell module.</p>
<h2>First Steps</h2>
<p>Keep calm and learn PowerShell.</p>
</body>
</html>

ایجاد یک وب سایت IIS

اکنون زمان آن رسیده است تا وب سایتی را که ایجاد کرده اید، در دسترس دید تمام جهان قرار دهید. به منظور رسیدن به این هدف باید یک دایرکتوری مجازی را بسازید. دایرکتوری مجازی شامل کلیه منابعی می باشد که برای صفحه مورد نظر مورد استفاده قرار می گیرد.

به طور پیش فرض IIS می تواند یک دایرکتوری مجازی را در زیر کد C: \ inetpub \ wwwroot ایجاد کند. این فهرست حاوی اطلاعات و منابع پیش فرض صفحه وب IIS می باشد. حال اگر بخواهید که عمل ذخیره سازی را بر روی پرونده های ایجاد شده خود اعمال کنید، می توانید از همان دستور C: \ inetpub \ wwwroot بهره ببرید. با استفاده از این پیش فرض ها نمی توان مسیرهای را کوتاه نگه داشت. به همین دلیل بهتر به جای استفاده از آن، از C: \ MyWebsite بهره مند شوید. برای ایجاد یک سایت و یا فهرست جدید می توانید از اسکریپت cmdlet New-IISSite استفاده کنید. این نوع از cmdlet می تواند به شما این امکان را بدهد تا به راحتی وب سایت IIS را درست کنید. New-IISSite ایجادکننده یک وب سایت با آدرس آی پی محدود است.

مثال

برای درک بهتر می توانید از دستور زیر بهره ببرید:

PS> New-IISSite -Name 'MyWebsite' -PhysicalPath 'C:\MyWebsite\' -BindingInformation "*:8088:"

پس از اینکه سایت را ایجاد کردید، به راحتی می توانید Get-IISSite را مطابق شکل زیر بسازید:

ساخت Get-IISSite
ساخت Get-IISSite بعد از راه اندازی سایت

به طور پیش فرض، پیکربندی وب سایت شما شروع شده است و هاست وب شما به درخواست های HTTP پاسخ می دهد. حال مرورگر مرود نظر خودتان را باز کنید و سپس به دستگاه محلی بروید. بعد از آن به پورت 8088 اشاره نمایید. حالا تمام صفحاتی را که از قبل ایجاد کرده اید را می توانید مشاهده کنید.

*******************************

با انجام تمام این کارها می توانید نتایج زحمات خود را مشاهده کنید. زیرا در حال حاظر شما توانسته اید که وب سایت خود را در IIS با استفاده از پاورشل تنظیم کنید. حالا که موفق شدید تا اولین وب سایت خود را فعال و راه اندازی کنید، نوبت آن رسیده است تا سایت خود و سرور IIS که به عنوان هاست به کار می رود را مدیریت کنید.

مدیریت وب سایت IIS

پس از اینکه وب سایت خود را راه اندازی کردید، نیاز به انجام اقدامات متدوالی برای انجام دادن دارید که از آن ها می توان به توقف و شروع کردن سایت اشاره کرد. به طور مثال اگر سایت شما نیاز دارد به روز رسانی شود، گاهی اوقات باید سایت را مجددا راه اندازی کنید. برای مدیریت سایت در پاورشل کاربر به دو نوع cmdlets نیاز دارد. – Start-IISSite و Stop-IISSite دو نوع ذکرشده هستند. این دو دستور دارای کارکردی مشابه با cmdlets Stop-Service و Start-Service می باشد.

برای اینکه راحت تر بتوانید توقف وب سایت را متوجه شوید، همین عمل را در سرویس ویندوز به یاد آورید. اگر شما یک پروتکلی داشته باشید که توسط IIS برای یک پورت منحصر به فرد ارائه می شود، می توانید از دسترسی به سایت جلوگیری کنید. نکته ای قابل ذکر این است که شما نمی توانید هاست IIS را متوقف کنید.

توقف کردن یک سایت واحد

به منظور متوقف نمودن یک وب سایت IIS از اسکریپت cmdlet Stop-IISSite باید استفاده شود. به عنوان پیش فرض سایتی که در قبل ایجاد کرده اید را باید در حالت Started قرار دهید. هدف از متوقف کردن یک سایت، عدم دسترسی داشتن به MyWebsite است. دستور زیر متوقف کردن یک سایت را عملی می کند:

PS> Stop-IISSite -Name "MyWebsite"

متوقف کردن تمامی سایت ها

در بالا توضیحاتی در مورد متوقف کردن تنها یک سایت گفته شد. با توضیحاتی که در ادامه آورده خواهند شد، می توانید به راحتی تمامی وب سایت های موجود را متوقف کنید. با استفاده از به کار بردن Get-IISSite و Stop-IISSite، پاورشل تمامی سایت ها را شمرده و شروع به متوقف کردن تمامی آن ها می کند. در مثالی که در ادامه آورده خواهد شد، با استفاده از پارامتر سوییچ Verbose که یک پارامتر اختیاری می باشد، می توانید به اطلاعات گسترده تری دسترسی داشته باشید. دستور زیر را باید در محیط پاورشل وارد نمایید:

Get-IISSite | Stop-IISSite -Verbose

تصویر زیر نیز این اطلاعات موجود را به خوبی نشان می دهد:

متوقف کردن سایت ها
متوقف کردن تمامی سایت ها

اگر سرویس انتشارات وب جهانی و یا W3SVC را متوقف کنید، در آن صورت می توانید تمامی وب سایت های موجود در IIS را نیز متوقف کنید. توقف نمودن سرورهای ویندوز تمامی IIS ها را خاموش خواهد کرد و از سرویس دهی همه سایت ها جلوگیری می کند. اگر این کار را انجام دهید، احتمال اینکه سایت ها در حالت Started قرار داشته باشند، وجود دارد.

راه اندازی یک سایت واحد

تصور کنید که شما به عنوان یک کاربر تغییراتی را در MyWebsite ایجاد کرده اید و حالا باید دوباره آن را شروع کنید. در این زمان فرصت استفاده از دستور Start-IISSite می باشد. برای انجام این کار کافیست که یک نام را با استفاده از Stop-IISSite cmdlet مشخص کنید. به اسکریپت زیر توجه کنید:

PS> Start-IISSite -Name 'MyWebsite'

وقتی که دستور بالا را اجرا کردید، با استفاده از Get-IISSite باید وضعیت موجود را بررسی کنید. پس از انجام این کار باید خروجی مشابه تصویر زیر را مشاهده نمایید:

********************************************

حالا نیاز است تا سایت شما مجددا در http://localhost:8088 در دسترس باشد. برای انجام این کار نیاز است که مرورگر خود را تازه و یا رفرش کنید.

شروع کردن تمامی سایت ها

همانطور که در تمامی انتشار سایت ها وجود دارد، به منظور شروع تمامی وب سایت های خود در هاست IIS با استفاده از خط لوله استفاده کنید. به دستور زیر دقت کنید:

PS> Get-IISSite | Start-IISSite

دوباره شما در حال دسترسی پیدا کردن به تمامی سایت های IIS هستید و می توان برای هر کدام از آن ها دوباره از خط لوله (PipeLine) استفاده کرد. خروجی شما باید مشابه تصویر زیر باشد:

اتصال به وب
مدیریت اتصال به وب

مدیریت اتصال به وب

حالا نوبت آن رسیده است برخی از تغییرات رایج را در سایت MyWebsite اعمال کنید. از این کارهای رایج می توان به تغییر اتصال وب اشاره کرد. هنگامی که شما MyWebsite را ایجاد کردید، باید از نحوه اتصال *:8088: استفاده کرد. فرض کنید پورت شما 80 می باشد و آدرس IP تان 127.0.0.1 است. حال می خواهید پورت خود را تغییر دهید. برای انجام این کار نیاز است تا اتصالات درون سایت را تغییر دهید.

بازرسی از اتصال موجود

پیش ار بازرسی و تغییر اتصالات موجود در سایت باید پیکربندی های فعلی را بررسی کنید. یکی از راه هایی که برای این کار وجود دارد بازرسی ویژگی های Binding است که به راحتی توسط Get-IISSite بازگردانده می شوند. به دستوری که در ادامه آورده خواهد شد توجه کنید تا بتوانید به راحتی آن را درک کنید. در قسمت میانبر شما گزینه Get-IISSite را مشاهده می کنید که در حال انجام عملیات جستجوی MyWebsite می باشد. این میانبر تنها ویژگی Bindings را باز می گرداند.

PS> (Get-IISSite -Name 'MyWebsite').Bindings

هنگامی که در حال بازرسی ویژگی های Bindings هستید، پاورشل تنها با چند قطعه اطلاعات مختلف یک شی را باز خواهد گرداند. تصویر زیر به خوبی این مورد را نشان می دهد:

اگر فقط می خواهید اطلاعات Binding را مشاهده کنید، می توانید به طور خاص اتصالات bindingInformation را در ادامه ببینید.

اتصالات bindingInformation
پیدا کردن اطلاعات binding

حذف پیوندها

اگر می خواهید که یک پورت موجود را تغییر دهید، در ابتدا باید اتصال موجود در آن را حذف کنید. برای حذف پیوندها و یا Bindings در شروع باید سایت را متوقف کنید.

PS> Stop-IISSite -Name 'MyWebsite'

پس از اینکه سایت را متوقف کردید، می توانید اتصال موجود در وبسایتتان را به درگاه و یا پورت 8088 حذف کنید. برای انجام این کار می توانید از اسکریپت Remove-IISSiteBinding cmdlet بهره ببرید. برای اینکه بتوانید پیوندهای وب سایتتان را حذف نمایید، باید نام سایت را تهیه کنید و سپس نحوه اتصال آن را ارائه دهید. برای انجام این کار کافیست از دستور Remove-IISSiteBinding استفاده کنید. دستور زیر به خوبی بیان کننده این موضوع است:

PS> Remove-IISSiteBinding -Name 'MyWebsite' -BindingInformation "*:8088:"

هنگامی که دستور بالا را وارد کردید، از شما درخواست می شود تا تصمیم خود را تایید کنید. علت آن انجام دادن کارهایی مخرب توسط شما است.

حذف سایت binding
نحوه حذف سایت binding

هیچ محدودیتی برای تعداد اتصال های شما وجود ندارد. شما به راحتی می توانید اتصال اصلی خود را حفظ نمایید و پورت TCP 9000 را به عنوان یک اتصال جدید اضافه کنید. حال می توانید Get-IISSite -Name ‘MyWebsite’ را دوباره اجرا کنید. حالا می توانید ببینید که تمام اتصالات پیوندها حذف شده اند که آن را به وسیله یک جای خالی متوجه خواهید شد.

اجرای Get-IISSite -Name
Get-IISSite -Name ‘MyWebsite’ را دوباره اجرا کنید.

هنگامی که سایت خود را ایجاد کردید، IIS نمی تواند ترافیکی که وجود دارد را به سایت شما انقال دهد. یکی از مواردی که بسیار حائز اهمیت است این می باشد که حداقل یک اتصال دهنده را به سایتتان اختصاص دهید. برای انجام این کار دوباره باید به نشان اینترنتی http: // localhost: 8088 / index.html بروید. همچنین اگر برای این کار از مرورگری به نام Mozilla Firefox استفاده می کنید، امکان مشاهده پیام زیر وجود دارد:

*******************************

ایجاد پیوندهای جدید

در آخرین بخش، شما تنها پیوندی که سایت مورد نظرتان داشت را حذف کرده اید. در حالی که این موضوع سایت شما را خراب کرده است. البته این مشکل تنها به صورت موقتی پا برجاست. برای حل این مشکل شما به ایجاد یک پیوند جدید دارید. برای اینکه یک اتصال جدید را برقرار کنید، کافیست از دستور New-IISSiteBinding cmdlet استفاده کنید. پورت 9000 باید به Mywebsite وصل شود. نحوه اتصال پیوند را در دستور زیر مشاهده می کنید:

PS> New-IISSiteBinding -Name 'MyWebsite' -BindingInformation "*:9000:"

پس از اینکه اتصال جدید را ایجاد کردید، نیاز دوباره سایت را با استفاده از کد Start-IISSite راه اندازی کنید. با شروع مجدد سایت می توانید به پورت 9000 دسترسی پیدا کنید. برای اینکه این اتصال را تایید کنید، مرورگر وب مورد نظر خود را باز کنید و آدرس http: // localhost: 9000 بروید. حال باید دوباره ببینید که صفحه وب شما دوباره تحت پورت 9000 مشغول به کار می باشد.
به تصویر زیر دقت کنید:

پورت TCP
مرورگر وب مورد نظر خود را باز کنید و آدرس http: // localhost: 9000 بروید

حذف یک وب سایت

برای اینکه یک وب سایت را حذف کنید، کافی است از دستور Remove-IISSite cmdlet. استفاده کنید. حذف یک سایت IIS می تواند خطرناک باشد. به خصوص اگر یک سایت در IIS هاست وب سایت های دیگر باشد را حذف کنید. برای تایید حذف سایت خود توصیه می شود که از پارامتر رایجی به نام WhatIf PowerShell استفاده کنید. با استفاده از این پارامتر می توانید بررسی کنید که در صورت حذف سایت چه اتفاق هایی ممکن است بیفتد. می توانید نمونه ای از حذف Mywebsite را با استفاده از پارامتر ذکرشده در ادامه مشاهده کنید:

Remove-IISSite -Name 'MyWebSite' –WhatIf
حذف یک وب سایت
برای حذف سایت از دستور Remove-IISSite cmdlet. استفاده کنید

اگر دیدید که همه چی خوب به نظر می رسد، می توانید نوار ایمنی را رها کنید و کد را بدون استفاده از پارامتر WhatIf استفاده کنید. هنگامی که اسکریپت استفاده می کنید، سایت شما حذف نمی شود. سایت شما تنها از پیکربندی حذف خواهد شد و پرونده های وب شما دست نخورده باقی خواهد ماند.

توانایی مدیریت IIS در پاورشل می تواند به عنوان یک تیری شناخته شود که با استفاده از آن می توان به چندین هدف شلیک کرد.

جمع بندی

همانطور که مشاهده کردید در این مقاله آموزش ویندوز از سری مقالات آموزش سیستم عامل وبلاگ پارس پک، به توضیح کامل مدیریت IIS در پاورشل پرداختیم که گستردگی های خاص خودش را دارا بود. نه تنها این دستور بلکه تمامی دستوراتی که می توان با پاورشل اجرا کرد، دارای نکات ریز و درشتی زیادی می باشند که اگر تمامی آن ها را فرا بگیرید به راحتی می توانید به یک کاربر حرفه ای ویندوز تبدیل شوید. پاورشل به عنوان یک ابزار قدرتمند و اتوماسیون می تواند شما را در انجام دادن سریع کارهای سروری و کامپیوتری راهنمایی کند. تنها با استفاده از آن می توانید تاثیر بسزای آن را مشاهده کنید.

سوالات متداول

1. اگر در نصب ماژول IISAdminstration به اینترنت دسترسی نداشته باشیم، چه روش دیگری وجود دارد؟

اگر در هنگام نصب IISAdminstration به اینترنت دسترسی نداشته باشید، می توانید ماژول مورد نظر را هاست دیگری بارگیری کنید و ماژول را در فهرست ماژول های دیگر کپی کنید.

2. HTML به چه منظوری به کار می رود؟

هدف از به کار بردن صفحه HTML این است که از پیکربندی صحیح IIS اطمینان حاصل کنید.

3. آیا پس از متوقف کردن یک سایت می توان دوباره به آن دسترسی داشت؟

نکته ای که در این باره وجود دارد این است که در صورت توقف یک سایت نمی توان دوباره به آن دسترسی داشت.

4. در مقایسه با دو ماژول ذکرشده کدام یک قابلیت های بیشتری دارند؟

اگر بخواهیم به برتری یکی از دو ماژول ذکرشده بپردازیم این است که IISAdministration از مدرنیته بیشتری بهره مند است و قابلیت های بیشتری را به خود اختصاص دهد.