15Jul
במהדורה זו של בית הספר החנון, נעזור לך להבין את שפת scripting עוצמה PowerShell שנבנה ישירות לתוך Windows, והוא מאוד שימושי לדעת בסביבת IT.
למרות שסדרה זו אינה מובנית סביב הבחינה, Learning PowerShell הוא אחד הדברים החשובים ביותר שאתה יכול לעשות כמנהל רשת, כך שאם יש דבר אחד שאתה רוצה ללמוד לעזור לקריירה של ה- IT שלך, זהו זה.בנוסף, זה הרבה כיף.
מבוא
PowerShell הוא כלי האוטומציה החזק ביותר שיש למיקרוסופט להציע, וגם את הקליפה וגם שפת scripting.
שים לב שסדרה זו מבוססת על PowerShell 3, המשלוח עם Windows 8 ו- Server 2012. אם אתה מפעיל את Windows 7, הורד את עדכון PowerShell 3 לפני שתמשיך.
פגוש את המסוף ואת ISE
קיימות שתי דרכים ליצירת אינטראקציה עם PowerShell מחוץ לקופסה, המסוף ו- Scripting Integrated Environment - הידוע גם בשם ISE.ה- ISE השתפר במידה ניכרת מהגרסה המחרידה ששולחה עם PowerShell 2 וניתן לפתוח אותו על-ידי לחיצה על שילוב המקלדת Win + R כדי להציג תיבת ריצה, ולאחר מכן הקלדת powerhell_ise והקשה על Enter.
כפי שאתה יכול לראות את ISE ספורט להציג פיצול, כך שאתה יכול במהירות סקריפט ועדיין להיות מסוגל לראות את התוצאה במחצית התחתונה של ISE.את החלק התחתון של ISE, שבו התוצאות של התסריט שלך מודפסים, יכול לשמש גם בתור הפקודה REPL - כמו שורת הפקודה.V3 ISE סוף סוף הוסיף תמיכה intellisense הן בחלונית סקריפט כמו גם את קונסולת אינטראקטיבית.לחלופין, ניתן ליצור אינטראקציה עם PowerShell באמצעות PowerShell Console, וזה מה שאשתמש בו עבור רוב הסדרה.PowerShell Console מתנהג כמו שורת הפקודה - אתה פשוט להזין פקודות והוא יורק את התוצאות.כדי לפתוח את Windows PowerShell Console, לחץ שוב על שילוב המקלדת Win + R כדי לפתוח תיבת הפעלה ולאחר מכן הקלד powershell ולאחר מכן הקש enter.
REPL מנחה את זה כמו מדהים עבור סיפוק מיידי: אתה מזין פקודה ואתה מקבל תוצאות.בעוד המסוף אינו מציע אינטליסנס, הוא מציע משהו שנקרא השלמת הכרטיסייה אשר פונקציות הרבה אותו דבר - פשוט להתחיל להקליד פקודה ולחץ על הכרטיסייה כדי לעבור בין התאמות אפשריות.
באמצעות מערכת העזרה
בגירסאות קודמות של PowerShell, קבצי עזרה נכללו בעת התקנת Windows.זה היה פתרון טוב על פי רוב, אבל עזב אותנו עם בעיה משמעותית.כאשר צוות העזרה של PowerShell נאלץ להפסיק לעבוד על קובצי העזרה, מפתחי PowerShell עדיין היו עסוקים בקידוד וביצוע שינויים.משמעות הדבר היא שכאשר PowerShell נשלחה, קובצי העזרה היו שגויים משום שהם לא הכילו את השינויים החדשים שבוצעו בקוד.כדי לפתור בעיה זו, PowerShell 3 מגיע ללא קבצי עזרה מהקופסה וכולל מערכת עזרה לעדכון.זה אומר לפני שאתה עושה משהו אתה רוצה להוריד את קבצי העזרה האחרונה.באפשרותך לעשות זאת על-ידי פתיחת PowerShell Console והפעלה:
Update-Help
ברכותינו על הפעלת הפקודה PowerShell הראשונה שלך!האמת היא שלפקודת Update-Help יש הרבה יותר אפשרויות מאשר פשוט להריץ אותה, ולראות אותם אנחנו רוצים לראות את העזרה של הפקודה.כדי להציג את העזרה עבור פקודה אתה פשוט להעביר את שם הפקודה שאתה רוצה לעזור עם הפרמטר שם של פקודת Get-Help, לדוגמה:
Get-Help -Name Update-Help
אתה בטח תוהה איך לפרשכל הטקסט הזה בכל מקרה, אני מתכוון למה יש שני מידע רב תחת הקטע תחביר ולמה יש כל כך הרבה סוגריים בכל מקום?ראשית הדברים הראשונים: הסיבה שיש שני בלוקים של מידע תחת הקטע תחביר היא כי הם מייצגים דרכים שונות כדי להפעיל את הפקודה.אלה נקראים טכנית ערכות פרמטר ואתה יכול להשתמש רק אחד בכל פעם( אתה לא יכול לערבב פרמטרים ממערכות שונות).בצילום המסך הנ"ל ניתן לראות שלמערכת הפרמטרים העליונה יש פרמטר SourcePath כאשר החלק התחתון לא.הסיבה לכך היא שתשתמש במערך הפרמטרים העליון( זה שכולל SourcePath) אם אתה מעדכן את קובצי העזרה שלך ממכשיר אחר ברשת שלך שכבר הורדת אותם, בעוד שלא תצטרך לציין נתיב מקור אם אתהרק רציתי לתפוס את הקבצים העדכניים ביותר של מיקרוסופט.
כדי לענות על השאלה השנייה, יש תחביר מסוים המסייע קבצים בצע והנה זה:
- בסוגריים מרובעים סביב שם פרמטר וסוגו פירושו הוא פרמטר אופציונלי הפקודה יעבוד בסדר גמור בלי זה.
- בסוגריים מרובעים סביב שם הפרמטרים כלומר הפרמטרים הוא פרמטר positional.
- הדבר בצד ימין של פרמטר בסוגריים זווית לספר לך את סוג הנתונים הפרמטר מצפה.
בזמן שאתה צריך ללמוד לקרוא את קובץ העזרה תחביר, אם אתה אי פעם בטוח לגבי פרמטר מסוים רק לצרף - מלא עד סוף הפקודה לקבל עזרה שלך לגלול למטה אל סעיף הפרמטרים, שם הוא יספר לך קצת יותר עלכל פרמטר.
Get-Help -Name Update-Help-
מלא הדבר האחרון שאתה צריך לדעת על מערכת העזרה הוא איך אתה יכול להשתמש בו כדי לגלות פקודות, וזה בעצם קל מאוד.אתה רואה, PowerShell מקבל תווים כלליים כמעט בכל מקום, ולכן השימוש בהם יחד עם פקודת Get-Help מאפשרת לך בקלות לגלות פקודות.לדוגמה, אני מחפש פקודות שעוסקות בשירותי Windows:
Get-Help -Name * Service *
בטח, כל המידע הזה עשוי להיות לא שימושי של המחבט, אבל תאמין לי, לקחת את הזמן וללמוד כיצד להשתמשמערכת העזרה.זה שימושי בכל עת, אפילו כדי scripters מתקדמים שעושים את זה במשך שנים.
אבטחה
זה לא יהיה מבוא ראוי מבלי להזכיר אבטחה.הדאגה הגדולה ביותר לצוות PowerShell היא ש- PowerShell הופכת לנקודת ההתקפה האחרונה והגדולה ביותר עבור קובצי Script.הם יש לשים כמה אמצעי אבטחה במקום כדי לוודא שזה לא יקרה, אז בואו נסתכל עליהם.
צורת ההגנה הבסיסית ביותר נובעת מהעובדה שתוסף הקובץ PS1( התוסף המשמש לציון סקריפט PowerShell) אינו רשום אצל מארח PowerShell, שהוא למעשה רשום ב- Notepad.כלומר, אם אתה לחיצה כפולה על קובץ זה יפתח עם פנקס במקום לרוץ.
שנית, אתה לא יכול להפעיל סקריפטים מן הקליפה על ידי הקלדת רק את שם התסריט, אתה צריך לציין את הנתיב המלא לסקריפט.אז אם אתה רוצה להריץ סקריפט על כונן C שלך תצטרך להקליד:
C: \ runme.ps1
או אם אתה כבר בשורש של כונן C אתה יכול להשתמש ב:
. \ Runme.ps1
לבסוף, PowerShell יש משהו שנקרא מדיניות ביצוע, אשר מונע ממך רק מפעיל כל סקריפט ישן.למעשה, כברירת מחדל, לא ניתן להפעיל סקריפטים כלשהם ועליך לשנות את מדיניות הביצוע שלך אם ברצונך לאפשר לך להפעיל אותם.קיימות 4 פעולות ביצוע בולטות:
- Restricted : זוהי תצורת ברירת המחדל ב- PowerShell.הגדרה זו פירושה שלא ניתן להפעיל סקריפט, ללא קשר לחתימתו.הדבר היחיד שניתן להפעיל ב- PowerShell עם הגדרה זו הוא פקודה בודדת.
- AllSigned: הגדרה זו מאפשרת סקריפטים לפעול ב- PowerShell.על הסקריפט להיות בעל חתימה דיגיטלית משויכת מבעל אתר מהימן.תהיה הודעה לפני שתפעיל את הסקריפטים מבעלי אתרים מהימנים.
- RemoteSigned : הגדרה זו מאפשרת הפעלת סקריפטים, אך דורשת שלקובצי הסקריפט וקובצי התצורה שהורדו מהאינטרנט יש חתימה דיגיטלית משויכת מבעל אתר מהימן.סקריפטים הפועלים מהמחשב המקומי לא צריכים להיות חתומים.אין הנחיות לפני הפעלת הסקריפט.
- ללא הגבלה : זה מאפשר סקריפטים לא חתומים לרוץ, כולל כל קבצי script וקבצי תצורה שהורדו מהאינטרנט.זה יכלול קבצים מ- Outlook ו- Messenger.הסיכון כאן הוא הפעלת סקריפטים ללא כל חתימה או אבטחה.אנו מחדש כי אתה אף פעם לא לנו הגדרה זו.
כדי לראות מהי מדיניות הביצוע הנוכחית שלך, פתח את PowerShell Console וסוג:
Get-ExecutionPolicy
עבור קורס זה וברוב הנסיבות האחרות, מדיניות RemoteSigned היא הטובה ביותר, לכן המשך ושנה את המדיניות שלך באמצעות האפשרויות הבאות.
הערה: זה צריך להיעשות מתוך מסוף PowerShell גבוה.
Set-ExecutionPolicy RemoteSigned
זה כל הזמן עבור אנשים זה הזמן, לראות אותך מחר בשביל קצת יותר PowerShell כיף.
כתב ויתור: המונח הנכון עבור פקודת PowerShell הוא cmdlet, ומעתה אנו נשתמש במינוח הנכון.זה פשוט הרגיש יותר מתאים לקרוא להם פקודות עבור הקדמה זו.
אם יש לך שאלות, אתה יכול ציוץ לי @ taybgibb, או פשוט להשאיר תגובה.