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