אם אתה ניהלת שרתי Windows, סביר להניח שעבדת עם Internet Information Services (IIS). אתרים הם אחת מתכונותיו העיקריות של IIS, ובאמצעות PowerShell, תוכל לנהל ולאוטומציה בקלות עם סקריפטים של PowerShell IIS!
במאמר זה, תוכל להתנסות בדרך חדשה לניהול של IIS באמצעות PowerShell. באמצעות הטכניקות המוצגות במאמר זה, יתכן ליצור בקלות סקריפטים של PowerShell IIS ליצירה וניהול של אתרי IIS.
כדי ל נהל את IIS באמצעות PowerShell, נדרש אחד משני המודולים של PowerShell – WebAdminstration או IISAdminstration. מאמר זה מתעסק במודול המודרני יותר, IISAdministration. הסרטון המשלים למאמר זה מדגים את המודול הישן יותר WebAdministration אם ברצונך לראות דרך אלטרנטיבית.
לדעת כיצד לנהל אתר אפשרי אפילו פשוט לחברתך או לעולם כולו תזהר אותך מהשאר מהחברים שלך. הקטעים הבאים במאמר זה יעזרו לך ללמוד כיצד ליצור ולנהל אתר ב-IIS. תלמד גם כיצד לנהל בריכות אפליקציות אינטרנט באמצעות מספר קודים PowerShell.
IISAdministration נגד WebAdministration Modules
יש לך שני אפשרויות לניהול של IIS. ניתן להשתמש ב-WebAdministration או IISAdministration. אבל אילו מומלץ לך להשתמש בו?
אם אתה משתמש ב-IIS 10.0 או גרסה גבוהה יותר, המודול החדש IISAdministration מציע המון שדרוגים ממודול הישן WebAdministration.
הנה כמה נקודות עיקריות:
- פקודות IISAdministration מציעות תמיכה טובה יותר בצינור ומתאימות יותר לגדילה.
- בהשוואה לפקודות הישנות יותר, הפקודות המצויות ב- IISAdministration מכילות קוד יעיל יותר.
- פקודות IISAdministration הן פשוטות יותר ומספקות גישה ישירה למנהל השרת.
מאמר זה יתמקד במודול החדש יותר של IISAdministration.
דרישות מוקדמות
מאמר זה יהיה מעשי. אם אתה מתכוון לעקוב, הקפד לוודא שיש לך את הדרישות הבאות במקום.
- מינימום של Windows PowerShell 5.1 או PowerShell 6+
- מודול PowerShell של IISAdministration מגלריית PowerShell
- תכונת Windows 10.0 IIS מופעלת

מומלץ שתהיה מוכר ביסודות של HTML. יהיה צעד שבו שימוש ב- HTML ישחק תפקיד בדוגמאות הבאות. אך אל דאגה, תוכל להעתיק ולהדביק את הקוד!
כל הדוגמאות בפוסט בבלוג זה נוצרו באמצעות IIS 10.0 ב- Windows 10 ו- PowerShell 7 Preview 6. פקודות IISAdministration הן אותן עבור Windows Server 2016 & 2019 ועובדות עם Windows PowerShell 5.1.
זהו עבור הכלים שנעשה בהם שימוש, עכשיו למשאבים הנדרשים כדי לעקוב.
התקנת המודול IISAdministration
פעם שאתה עומד בדרישות המוקדמות, זה הזמן לבצע קצת עבודת התקנה. למזלנו, אין הרבה עבודת התקנה לבצע מאחר והמודול של PowerShell שאתה צריך (IISAdministration) זמין בחינם בגלריה של PowerShell.
פשוט פתח חלון קונסולת PowerShell מוגבלת ברמה הנמוכה בשרת האינטרנט שלך והתקן את המודול באמצעות הפקודה הבאה.
אם אין לך גישה לאינטרנט, תוכל להוריד את המודול למחשב אחר ולהעתיק אותו לתיקיית המודולים שלך. קח תורך בתיעוד של הפקודה
Save-Module
.
גילוי הפקודות הזמינות
כמו כל מודול PowerShell שאולי אינך מכיר בו, אחת הפקודות הראשונות שכדאי להשתמש בהן כדי לגלות את התצורה של הפקודות במודול היא Get-Command
. באמצעות הפקודה Get-Command -Module 'IISAdministration'
כפי שמוצג למטה, תוכל לראות מה אפשרי עם המודול הזה.
אפילו אם תלמד כמה פעולות נפוצות לביצוע על אתרים, הפקודות האלו יעניקו לך רעיון על כל השאר שאתה יכול לעשות.

עכשיו יש לך רשימת הפקודות הזמינות. הגיע הזמן להתחיל לבנות את האתר הראשון שלך.
יצירת האתר הראשון שלך
כדי ליצור אתר כדי לעבוד איתו, נראה שנצטרך ליצור תחילה אתר. כדי לעשות זאת, השלב הראשון הוא ליצור ספרייה כדי לשמור את תוכן האתר. בנוסף, תצטרך קובץ HTML בספרייה זו כדי ש-IIS יוכל להציג. הספרייה הזו תשמש כספרייה אינטרנטית שתשמש בדוגמאות מאוחרות.
יצירת התיקייה והדף באינטרנט
בראש דבר, יש ליצור תיקייה. כדי לעשות זאת, ניתן להשתמש ב־New-Item
. הקוד למטה ייצור תיקייה ב־C:\MyWebsite.
ניתן לבחור נתיב כלשהו בקוד למעלה. כדי לשמור על הדברים פשוטים, ישמשו נתיבים גנריים.
לאחר שיצרת את התיקייה, הגיע הזמן ליצור קובץ HTML שיהיה עמוד הכניסה לאתר החדש שלך.
כעת ניתן ליצור קובץ בשם index.html בתיקיית C:\Mywebsite כפי שמוצג למטה.
לאחר שנוצר הקובץ, יש לפתוח אותו בעורך הטקסט האהוב עליך ולהעתיק ולהדביק את הקוד למטה אל תוך המסמך. קובץ זה הוא קוד HTML פשוט שישמש לוודא ש-IIS מוגדר כראוי כאשר סיימת את ההגדרות.
יצירת אתר IIS
כעת הגיע הזמן להפוך את העמוד שנוצר לאתר שניתן לראות מכל רחבי העולם. כדי לעשות זאת, עליך ליצור תיקיית וירטואלית. התיקייה הוירטואלית מכילה את כל הנכסים והמשאבים המשמשים לדף שמוצג.
לפי ברירת מחדל, IIS יוצר ספריית וירטואלית בתוך C:\inetpub\wwwroot. הספרייה מכילה את כל נכסי עמוד האינטרנט המוגדרים כברירת מחדל והמשאבים עבור IIS. באפשרותך להשתמש בספריית C:\inetpub\wwwroot ברירת המחדל גם כן לאחסון הקבצים שלך, אך לדוגמאות אלו, לא תוחשב בשימוש בהם כדי לשמור על הנתיבים כקצרים ככל האפשר. לכן אתה משתמש ב־C:\MyWebsite במקום זאת.
ליצירת ספריית וירטואלית (אתר) חדשה, השתמש ב־New-IISSite
cmdlet. פקודת זו מאפשרת לך ליצור אתר IIS חדש.
במאמר זה, צור אתר בשם Mywebsite המצביע לספריית C:\MyWebsite המאזינה בפורט 8088. בחלק הקטע הבא, תוכל לראות כיצד לעשות זאת באמצעות פקודת ה־New-IISSite
.
החלק היחיד שעשוי להיות מבלבל הוא הפרמטר BindingInformation
. פרמטר זה מאפשר רק תחבירי חיבור. בקטע הקוד הזה, New-IISSite
ייצור אתר שמחובר לכתובת IP ( *
היא אותו דבר כמו 127.0.0.1), הפורט TCP להאזנה ולאחריו כל כותרות HTTP.
ניתן להסביר תחבירי חיבור כפרוטוקול, עקב מקור:פורט:יעד . בדוגמה זו, הגדרת את IIS להאזין לבקשות HTTP מכל כתובת IP () בפורט 8088 והיעד הוא המחשב הלוקלי.*
פעם שהאתר נוצר, תוכל להריץ את Get-IISSite
כדי לבדוק איך הוא נראה כפי שמוצג למטה.

כברירת מחדל, תצורת האתר מופעלת והשרת שלך מתחיל לשרת את בקשות ה-HTTP ההן. פתח את דפדפן האינטרנט שלך ונווט אל המחשב המקומי בפורט 8088. כעת אתה אמור לראות את הדף האינטרנטי שיצרת קודם.

מזל טוב! הצלחת להקים את האתר הראשון שלך על IIS באמצעות PowerShell!
עכשיו שיש לך אתר פועל, הגיע הזמן ללמוד כיצד לנהל את האתר ואת שרת ה-IIS שמכיל אותו.
ניהול האתר ב-IIS
לאחר שאתר נוצר ופועל, כמובן שתצטרך לבצע פעולות נפוצות כמו עצירה והפעלה של האתר. לדוגמה, אם האתר דורש עדכונים, לפעמים עליך לאתחל את האתר.
כדי לנהל את האתר ב-PowerShell, יש לך שני cmdlets לעבוד איתם – Start-IISSite
ו- Stop-IISSite
. שני ה-cmdlets האלה פועלים בדיוק כמו ש-cmdlets Stop-Service
ו- Start-Service
פועלים.
לעצירת אתר דומה לעצירת שירות Windows. אתה מונע או מאפשר גישה לאתר הנגיש על ידי פרוטוקול הנשרת על פורט ייחודי על ידי IIS. אך אתה לא עוצר את מארח ה-IIS. ניתן לעצור ולהפעיל אתרים ב-אופן יחידי.
עצירת אתר יחיד
כדי לעצור אתר ב-IIS, יש להשתמש בפקודת ה-Stop-IISSite
. כברירת מחדל, האתר שיצרת בשלב הקודם אמור להיות במצב Started
. אם תעצור את האתר ותמנע גישה ל-MyWebsite, הרץ את Stop-IISSite
וספק את השם כפי שמוצג למטה. קטע הקוד הזה עוצר את האתר MyWebsite מלהיות משרת על ידי ה-IIS. לאחר עצירת האתר, לא תהיה לך עוד אפשרות לגשת אליו.
דוגמא לבדיקת מצב האתר כ-Started
, עצירתו ובדיקת המצב שוב מוצגת למטה. בדוגמא זו, אתה:
- מקבל את מצב האתר MyWebsite באמצעות
Get-IISSite
. - מבצע את פקודת ה-
Stop-IISSite
נגד האתר MyWebsite. פקודה זו סוגרת את הגישה לאתר. מכיוון שפעולה זו עושה שינויים אופרטיביים, תתבקש לאישור. - הרצת
Get-IISSite
שוב כדי לוודא שהאתר MyWebsite עצור ולהבחין במצבStopped
.

עצירת כל האתרים
למעלה עצרת אתר יחיד, אך ניתן גם לעצור את כל האתרים בקלות. על ידי השימוש בצינור והעברת הפלט של Get-IISSite
אל Stop-IISSite
, PowerShell יספור את כל האתרים ויעצור אותם כולם. בדוגמא הקודמת, הפרמטר האופציונלי Verbose
משמש להצגת מידע נוסף.

ניתן גם לעצור את כל האתרים ב-IIS על ידי עצירת ה-W3SVC או שירות הפרסום הגלובלי ברשת. עצירת השירות בווינדוס תכבה את 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
.
כאשר אתה בודק רק את מאפיין ה-Bindings
, PowerShell יחזיר אובייקט עם מספר פרטים שונים כפי שמוצג למטה.

אם ברצונך לראות רק את מידע התחבורה, תוכל להתייחס בפרט למאפיין bindingInformation
כפי שמוצג למטה.

הסרת תחבורות
אם ברצונך לשנות את הפורט שבו האתר אוזן, עליך להסיר תחבורה קיימת הקשורה אליו. כדי להסיר את התחבורה, עליך תחילה לעצור את האתר.
לאחר שהאתר מופסק, תוכל כעת להסיר את התחבורה הקיימת שמחברת את האתר MyWebsite לפתח 8088. לעשות זאת, תוכל להשתמש בRemove-IISSiteBinding
cmdlet.
כדי להסיר את הקישור ל־MyWebsite כפי שהוגדר למעלה, למטה תראה דוגמה לשימוש ב־Remove-IISSiteBinding
כדי לעשות זאת. מתחת לכך, אתה מספק את שם האתר ומפרט את תחביר הקישור שנמצא מראש.
כאשר אתה מפעיל את הקוד, יתבקש ממך לאשר את ההחלטה שלך מאחר ואתה עושה משהו מושחת כפי שמוצג למעלה.

אין הגבלה על כמות הקישורים שיכולים להיות. ניתן בקלות לשמור על הקישור המקורי ולהוסיף את יצירת קישור חדש ב־TCP פורט 9000.
כעת ניתן להפעיל שוב את Get-IISSite -Name 'MyWebsite'
. כעת תראה שהמידע על הקישור הוסר כפי שמוצג על ידי הערך הריק מתחת ל־Bindings
.

אף על פי שהאתר פורסם, IIS אין לו דרך לדעת כיצד להפנות תעבורה אליו.
חשוב להקצות לפחות קישור אחד לאתר שלך. כדי להדגיש לך את החשיבות, נסה לנווט אל http://localhost:8088/index.html שוב. אם השתמשת בדפדפן האינטרנט Mozilla Firefox, ייתכן שתראה את ההודעה הבאה.

יצירת קישורים חדשים
במקטע האחרון, הסרת את הקישור היחיד של האתר MyWebsite כשהיה. בעוד שזה פגע באתר, זה בעיה זמנית בלבד. הגיע הזמן לתקן את הבעיה וליצור קישור חדש.
כדי ליצור קישור חדש, השתמש ב־New-IISSiteBinding
cmdlet. מאחר ואתה צריך לקשור את פורט 9000 לאתר MyWebsite כעת, ספק את תחביר הקישור הנכון כפי שמוצג למטה.
פעם שיצרת את הקשר החדש, התחל שוב את האתר עם Start-IISSite
. זכור שכדי ליצור את הקשר החדש זה, הוא דרוש להוריד את האתר.
כשהאתר מתחיל שוב, אתה צריך כעת להגיע אליו בפורט 9000. כדי לאמת זאת, פתח דפדפן האינטרנט שלך ונווט אל http://localhost:9000. עכשיו אתה אמור לראות שהעמוד פועל שוב תחת פורט 9000.

הסרת אתר
אם עברת כעת דרך מדריך ואינך מתכוון לשמור על האתר MyWebsite, הגיע הזמן לנקות אותו. כדי להסיר את האתר, השתמש ב־Remove-IISSite
cmdlet.
הסרת אתר IIS יכולה להיות משימה מסוכנת במיוחד אם אתה מסיר אתר ב-IIS שמארח אתרים ייצוריים נוספים. כדי לוודא שאתה מסיר את האתר הנכון, מומלץ להשתמש בפרמטר הנפוץ WhatIf
בפוורש PowerShell. פרמטר זה מאפשר לך לבדוק מה היה יקרה אם הפקודה היתה רצה.
ניתן לראות דוגמה להסרת האתר MyWebsite בשימוש בפרמטר WhatIf
למטה.

-WhatIf
!אם הכל נראה טוב, השחרר את המזוודה המסייעת והרץ שוב את הקוד, הפעם בלעדי פרמטר -WhatIf
.
כאשר אתה משתמש ב־
Remove-IISSite
cmdlet, האתר אינו נמחק. הוא מוסר מהתצורה של IIS. הקבצים לאתר נשמרים שלמים.
סיכום
במאמר זה, למדת ליצור אתר באמצעות מודול IISAdministration. ראית כיצד לבצע פעולות מנהליות הנדרשות לתחזוקת האתר. עכשיו אתה יודע מספיק על היסודות כדי לעבוד עם כל מארח IIS מודרני באמצעות PowerShell!