PowerShell ExecutionPolicy מוסבר

15 בספטמבר 2020 2424 צפיות מדיניות ביצוע powershell

עיין בנושאי פוסטים





מהי 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 הנוכחית, הפעל את הפקודה למטה:

|_+_| כיצד להגדיר מדיניות ביצוע עם Set-ExecutionPolicy

כדי לראות את ה-ExecutionPolicy שנקבע עבור כל ההיקפים השתמש בפקודה זו:

|_+_| כיצד להגדיר מדיניות ביצוע עם Set-ExecutionPolicy

אתה יכול גם לקבל מדיניות ביצוע על סמך היקף. להלן כמה פקודות לדוגמה:

|_+_|

כיצד להגדיר את PowerShell ExecutionPolicy

כפי שציינתי בהקדמה, אתה יכול להגדיר ExecutionPolicy עם ה-cmdlet Set-ExecutionPolicy. אתה יכול גם להשתמש בפקודה PowerShell.exe -ExecutionPolicy.

כיצד להגדיר מדיניות ביצוע עם Set-ExecutionPolicy

התחביר של ה-cmdlet Set-ExecutionPolicy הוא:

|_+_|

כדוגמה, להגדיר את מדיניות הביצוע ל RemoteSigned השתמש בפקודה למטה:

|_+_|

הנה התוצאה של הפקודה.

אקסון 7 לפתוח אתחול
כיצד להגדיר מדיניות ביצוע עם Set-ExecutionPolicyהפקודה נכשלה מכיוון שלא פתחתי את PowerShell כמנהל.

הנה הפקודה שבוצעה כמנהל:

כיצד להגדיר מדיניות ביצוע עם PowerShell.exe -ExecutionPolicy

כפי שניתן לראות מהתמונה, מדיניות הביצוע החדשה היא כעת 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 מוסבר: תחביר ודוגמאות

משאבים והפניות נוספות