PowerShell ExecutionPolicy מוסבר
עיין בנושאי פוסטים
- מהי PowerShell ExecutionPolicy?
- מדיניות ביצוע זמינה
- היקף וקדימות מדיניות ביצוע
- כיצד להשיג את מדיניות הביצוע הנוכחית של PowerShell
- כיצד להגדיר את PowerShell ExecutionPolicy
- סיכום
- מדריכים מועילים אחרים
- משאבים והפניות נוספות
מהי PowerShell ExecutionPolicy?
ExecutionPolicy ב- PowerShell היא תכונת אבטחה השולטת כיצד PowerShell טוען קבצי תצורה ומריץ סקריפטים. תכונות ExecutionPolicy עוזרות למנוע מ- PowerShell להריץ סקריפטים זדוניים.
אתה יכול להגדיר מדיניות ביצוע עבור מחשב, משתמש או הפעלה. ה Set-ExecutionPolicy ניתן להשתמש ב-cmdlet כדי להגדיר ExecutionPolicy. לפקודת PowerShell.exe יש גם פרמטר ExecutionPolicy שבו אתה יכול להשתמש כדי להגדיר את Powershell ExecutionPolicy.
במדריך זה תלמדו על הסוגים השונים של מדיניות ביצוע PowerShell. תלמד גם כיצד להשתמש בפקודות Set-ExecutionPolicy ו-PowerShell.exe -ExecutionPolicy.
מדיניות ביצוע זמינה
סעיף זה מסביר את מדיניות הביצוע השונה שתוכל להגדיר ב- PowerShell ומה כל אחד מהם יאפשר לך לעשות.
מוגבל
- זוהי מדיניות הביצוע המוגדרת כברירת מחדל ב-Windows 8, Server 2012 ומעלה.
- מונע מקבצי תצורה של PowerShell (.ps1xml), קובצי סקריפט מודול (.psm1) ופרופילי Windows PowerShell (.ps1) לפעול
- מאפשר פקודות PowerShell בודדות אך דוחה סקריפטים
AllSigned
כאשר אתה מגדיר את AllSigned ExecutionPolicy, PowerShell:
- מריץ את כל הסקריפטים
- מחייב שלפני שסקריפט מורשה לפעול עליו להיות חתום על ידי מפרסם מהימן. זה כולל סקריפטים שנכתבו במחשב המקומי
- הנחיה לאשר לפני הפעלת סקריפט ממפרסם שלא אישרת הוא מהימן
- עלול להפעיל קודים חתומים אך זדוניים
RemoteSigned
RemoteSigned Execution Policy:
- מאפשר הפעלת סקריפטים
- מחייב שכל התסריטים שהורדו מהאינטרנט חייבים להיות חתומים דיגיטלית על ידי בעל אתר שציינת כאמין. זה כולל סקריפטים שהתקבלו באמצעות דואר אלקטרוני ופלטפורמות הודעות מיידיות.
- לא ידרוש חתימה דיגיטלית של סקריפטים שנכתבו במחשב מקומי
- עשוי לאפשר הפעלת סקריפטים זדוניים ממקורות אחרים
ללא הגבלה
- מאפשר להפעיל סקריפטים שלא הוקצו
- אזהיר אותך לפני ביצוע סקריפט מהאינטרנט
- סיכונים להפעיל קודים או סקריפטים זדוניים
לַעֲקוֹף
עם מדיניות ביצוע עקיפה:
- שום סקריפט לא חסום. לא מציע גם אזהרות.
לא מוגדר
- פירושו שלא מוגדרת מדיניות ביצוע
- מדיניות הביצוע האפקטיבית מוגבלת (ברירת מחדל)
היקף וקדימות מדיניות ביצוע
אתה יכול להחיל את מדיניות הביצוע של PowerShell על:
LocalMcachine : משפיע רק על המשתמשים הנוכחיים. יש לזה הכי פחות עדיפות
משתמש נוכחי : מדיניות הביצוע משפיעה רק על המשתמש הנוכחי. מקבל עדיפות LocalMcachine אבל יש לו עדיפות נמוכה יותר תהליך .
תהליך : חל רק על ההפעלה הנוכחית. מקבל את העדיפות הגבוהה ביותר.
כיצד להשיג את מדיניות הביצוע הנוכחית של PowerShell
כדי לראות את PowerShell ExecutionPolicy הנוכחית, הפעל את הפקודה למטה:
|_+_|
כדי לראות את ה-ExecutionPolicy שנקבע עבור כל ההיקפים השתמש בפקודה זו:
|_+_|
אתה יכול גם לקבל מדיניות ביצוע על סמך היקף. להלן כמה פקודות לדוגמה:
|_+_|כיצד להגדיר את PowerShell ExecutionPolicy
כפי שציינתי בהקדמה, אתה יכול להגדיר ExecutionPolicy עם ה-cmdlet Set-ExecutionPolicy. אתה יכול גם להשתמש בפקודה PowerShell.exe -ExecutionPolicy.
כיצד להגדיר מדיניות ביצוע עם Set-ExecutionPolicy
התחביר של ה-cmdlet Set-ExecutionPolicy הוא:
|_+_|כדוגמה, להגדיר את מדיניות הביצוע ל RemoteSigned השתמש בפקודה למטה:
|_+_|הנה התוצאה של הפקודה.
אקסון 7 לפתוח אתחול
הפקודה נכשלה מכיוון שלא פתחתי את PowerShell כמנהל.הנה הפקודה שבוצעה כמנהל:
כפי שניתן לראות מהתמונה, מדיניות הביצוע החדשה היא כעת RemoteSigned .
מ-2 הפקודות האחרונות התבקשתי לאשר את הפקודה. כדי לעקוף הנחיה זו, כלול את ה -כּוֹחַ פָּרָמֶטֶר.
הפקודה מופעלת כעת מבלי לבקש אישור.
ה -כּוֹחַ פרמטר שימושי במיוחד בסקריפט. ללא פרמטר זה הסקריפט שלך עשוי להיעצר.כברירת מחדל פקודה זו מגדירה מדיניות ביצוע עבור LocalMachine תְחוּם. כדי לאשר זאת, הפעל את הפקודה למטה:
|_+_|
כדי להגדיר את מדיניות הביצוע כך שתחול על היקף אחר, השתמש ב- תְחוּם פָּרָמֶטֶר.
הפקודה למטה מגדירה מדיניות ביצוע עבור משתמש נוכחי :
|_+_|
כפי שניתן לראות מהתוצאה, משתמש נוכחי המדיניות כבר לא לא מוגדר . זה עכשיו לַעֲקוֹף , המדיניות שהוגדרה עם הפקודה האחרונה.
כיצד להגדיר ExecutionPolicy עם PowerShell.exe -ExecutionPolicy
אם ברצונך לעקוף את מדיניות הביצוע עבור ההפעלה המחוברת, תוכל להגדיר מדיניות ביצוע עבור שורת הפקודה הנוכחית. זה מושג באמצעות הפקודה PowerShell.exe.
לפני שאתן דוגמאות, הנה מדיניות הביצוע הנוכחית:
מדיניות הביצוע הנוכחית היא מוגבל . זה בגלל ש תהליך ההיקף מקבל עדיפות. כדי לאשר, ראה את התוצאה שלהלן:
דיסק Blu-ray זה זקוק לספריה לפענוח aacs
אם אתה זוכר, מוגבל המדיניות לא תאפשר סקריפטים לפעול.
זה אומר שאם אנסה להריץ סקריפט, תישלל ממני גישה. התמונה למטה מציגה סדרה של פקודות ותוצאותיהן. ראה את ההסבר שלי מתחת לתמונה.
הפקודה הראשונה שמוצגת בתמונה היא:
|_+_|ניסיתי להריץ סקריפט PowerShell. ואז קיבלתי את הודעת השגיאה למטה:
לא ניתן לטעון את קובץ C:PSschedule powershellCreate-folders-from-text-file.ps1 מכיוון שהפעלת סקריפטים מושבתת במערכת זו.
הסיבה היא כי מדיניות הביצוע הנוכחית היא מוגבל . זה לא מאפשר לרוץ סקריפטים.
חזרה לתמונת ההפניה. בשורה הבאה הרצתי את הפקודה הבאה:
|_+_|למעשה, אני יכול להגדיר מדיניות הפעלה זמנית עבור שורת הפקודה באמצעות הפרמטר -ExecutionPolicy של הפקודה thepowershell.exe. אבל קיבלתי את אותה הודעת שגיאה. הסיבה היא שאני צריך להגדיר את מדיניות הביצוע לפני שאני קורא לסקריפט.
ואז בשורה הבאה, ביצעתי את הפקודה הזו:
|_+_|זה מגדיר את מדיניות הביצוע עבור ההפעלה הנוכחית המחוברת ל- ללא הגבלה . אז כשאני מריץ עכשיו את סקריפט PowerShell שלי, הוא בוצע בהצלחה! ראה את תמונת ההפניה למעלה.
ההשקפה מהניתוח האחרון היא זו: אתה יכול להגדיר את Powershell ExecutionPolicy עבור ההפעלה הנוכחית באמצעות Powershell.exe -ExecutionPolicy. אבל, תחילה עליך להפעיל את הפקודה לפני שתקרא לסקריפט שלך.כדי לאשר ש-Powershell.exe מגדיר מדיניות רק עבור ההפעלה הנוכחית, אפעיל את הפקודה למטה מההפעלה הנוכחית:
|_+_|התוצאה היא ללא הגבלה בשביל ה משתמש נוכחי תְחוּם. אם אני מתנתק מההפעלה הנוכחית שלי ומתחבר שוב. זה יחזור למדיניות שנקבעה בפקודה Set-ExecutionPolicy.
סיכום
אני מקווה שהצלחתי לפשט כיצד להשיג ולהגדיר את מדיניות הביצוע של PowerShell. אם יש לך שאלה או הערות, השתמש בטופס השאר תשובה בסוף העמוד.
מדריכים מועילים אחרים
- PowerShell Not Equal Operator: יישומים, דוגמאות
- Powershell For Loop מוסבר: תחביר ודוגמאות


