מהם משתנים אוטומטיים ב- PowerShell

Mhm Mstnym Wtwmtyym B Powershell



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

מאמר זה נועד לחקור את המושג 'משתנים אוטומטיים' ב- PowerShell, את משמעותם וכיצד ניתן למנף אותם בתרחישים שונים.







מהם משתנים אוטומטיים ב- PowerShell?

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



PowerShell מציעה מספר 'משתנים אוטומטיים' וכל אחד מהם משרת מטרה נפרדת בביצוע סקריפט. משתנים אלה הם כדלקמן:



1. $PSVersionTable

אחד המשתנים האוטומטיים הבסיסיים ב- PowerShell הוא ' $PSVersionTable '. משתנה זה מאפשר למפתחי סקריפטים לוודא את הגרסה של PowerShell בשימוש, דבר שיכול להיות מכריע כאשר שוקלים את התאימות והזמינות של תכונות ופונקציות מסוימות.





המאפיינים הבאים משויכים למשתנה זה:

גרסת PS: מחזירה את מספר הגרסה של PowerShell.



מהדורת PSE: עבור PowerShell 4 ואילך, כמו גם PowerShell 5.1 בגרסאות Windows עם כל התכונות, למאפיין זה יש את הערך 'Desktop'. למאפיין זה יש את הערך של Core עבור PowerShell 6 ואילך, כמו גם Windows PowerShell 5.1 עבור מהדורות עם טביעת רגל נמוכה כמו Windows Nano Server או Windows IoT.

GitCommitId: שולף את מזהה התחייבות GitHub של קבצי המקור.

אתה: רושם מידע על מערכת המחשב שבה משתמשת PowerShell.

פּלַטפוֹרמָה: מחזיר את הפלטפורמה התומכת של מערכת ההפעלה. ל-Unix יש ערך ב-Linux וב-macOS. בדוק את $IsMacOs ו-$IsLinux.

גרסאות תואמות PS: מוחזרות גרסאות PowerShell התואמות לגרסה הנוכחית.

PSRemotingProtocolVersion: מחזירה את מספר הגרסה עבור פרוטוקול הניהול המרוחק של PowerShell.

גרסת סדרה: מחזירה את גרסת שיטת הסידרה.

WSManStackVersion: מחזירה את מספר הגרסה של מחסנית WS-Management.

$ PSVersionTable

2. $Args

משתנה אוטומטי חיוני נוסף ב- PowerShell הוא ' $Args ', המכיל מערך של ארגומנטים של שורת הפקודה המועברים לסקריפט או לפונקציה. משתנה זה מאפשר למפתחים לעבד ולתפעל את הארגומנטים המסופקים באופן דינמי בתוך הסקריפטים שלהם.

בעת הגדרת פונקציה, אתה יכול להשתמש במילת המפתח 'param' כדי להכריז על הפרמטרים או שאתה יכול להוסיף רשימה מופרדת בפסיקים של פרמטרים בסוגריים לאחר שם הפונקציה. המשתנה '$Args' של פעולת אירוע מאחסן אובייקטים המשמשים כמצייני מיקום עבור פרמטרי האירוע של האירוע בטיפול:

לכל אחד ( $ארג ב $Args ) {
כתיבה-מארחת $ארג
}

3. $MyInvocation

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

$ MyInvocation

4. $שגיאה

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

השגיאה האחרונה מיוצגת על ידי אובייקט השגיאה הראשון במערך ' $Error[0] '. אתה יכול להשתמש באפשרות הנפוצה של ErrorAction עם הערך 'התעלם' כדי למנוע מהשגיאות להתווסף למערך '$Error'.

נניח שהקלדנו פקודה מדויקת:

ip [ onfig

כעת, אם נזין את ה-cmdlet '$Error':

$ שְׁגִיאָה

5. $PSCmdlet

בעבודה עם מודולי PowerShell, המשתנה האוטומטי ' $PSCmdlet ' נכנס לתוקף. משתנה זה מספק גישה למופע הנוכחי של ה-cmdlet או הפונקציה המופעלת, ומאפשר אינטראקציה ישירה עם המאפיינים והשיטות שלו.

באמצעות '$PSCmdlet', מפתחי סקריפטים מתקדמים יכולים לכוונן ולשפר את ההתנהגות של מודולים על ידי הרחבה או שינוי של הפונקציות המובנות. אתה יכול להשתמש בתכונות ובשיטות של האובייקט ב-cmdlet או בקוד הפונקציה שלך בתגובה לקריטריונים של שימוש:

פוּנקצִיָה typeof-psCmdlet {
[ cmdletBinding ( ) ] param ( )
הֵד 'סוג של ` $psCmdlet הוא $($psCmdlet.GetType() .שם מלא)'
}

typeof-psCmdlet

בנוסף למשתנים שהוזכרו לעיל, PowerShell מקיפה משתנים אוטומטיים כמו $HOME, $PROFILE, $PWD ועוד רבים, המשרתים מטרות שונות, כמו גישה לקלט, שגיאות מעקב, אחזור מידע סביבתי, ניהול פרמטרים ועוד ועוד. משתנים אלה מפורטים להלן:

משתנים אוטומטיים תיאור
$$ מחזיק את האסימון האחרון בשורה הקודמת שהתקבל על ידי הפעלת PowerShell.
$? מאחסן את מצב הביצוע של הפקודה האחרונה.
$^ מכיל את האסימון הראשון של השורה האחרונה שהתקבלה על ידי ההפעלה.
$_ מייצג את האובייקט הנוכחי בצינור.
$ConsoleFileName מכיל את הנתיב של קובץ המסוף (.psc1) בשימוש האחרון בהפעלה.
$EnabledExperimentalFeatures מכיל רשימה של תכונות הניסוי המופעלות.
$Event מכיל אובייקט 'PSEventArgs' המייצג את האירוע המעובד.
$EventArgs מכיל את ארגומנט האירוע הראשון של האירוע המעובד.
$EventSubscriber מייצג את מנוי האירוע של האירוע בעיבוד.
$ExecutionContext מייצג את הקשר הביצוע של מארח PowerShell.
$false מייצג את הערך הבוליאני 'שקר'.
$foreach מכיל את המונה של לולאה 'לכל אחד'.
$HOME מכיל את הנתיב המלא של ספריית הבית של המשתמש.
$מארח מייצג את היישום המארח הנוכחי עבור PowerShell.
קלט $ משמש כמונה עבור כל הקלט המועבר לפונקציה או סקריפט.
$IsCoreCLR מציין אם ההפעלה פועלת ב-.NET Core Runtime (CoreCLR).
$IsLinux מציין אם ההפעלה פועלת על מערכת הפעלה לינוקס.
$IsMacOS מציין אם ההפעלה פועלת על מערכת הפעלה MacOS.
$IsWindows מזהה אם ההפעלה פועלת על מערכת הפעלה Windows.
$LASTEXITCODE מאחסן את קוד היציאה של התוכנית המקורית האחרונה או סקריפט PowerShell.
$Matches מכיל מחרוזות תואמות מהאופרטורים '-match' ו-'-notmatch'.
$NestedPromptLevel עוקב אחר רמת ההנחיה הנוכחית בפקודות מקוננות או בתרחישי ניפוי באגים.
$null מייצג ערך ריק או ריק.
$PID מכיל את מזהה התהליך (PID) של הפעלת PowerShell.
$PROFILE מכיל את הנתיב המלא של פרופיל PowerShell עבור המשתמש הנוכחי והיישום המארח.
$PSBoundParameters מכיל מילון של פרמטרים שהועברו לסקריפט או פונקציה והערכים שלהם.
$PSCommandPath מכיל את הנתיב ואת שם הקובץ המלאים של הסקריפט שמתבצע.
$PSCulture משקף את התרבות של מרחב הריצה הנוכחי של PowerShell.
$PSEdition מכיל את המידע על מהדורת PowerShell.
$PSHOME מכיל את הנתיב המלא של ספריית ההתקנה של PowerShell.
$PSItem זהה ל-$_, מייצג את האובייקט הנוכחי בצינור.
$PSScriptRoot מכיל את הנתיב המלא של ספריית האב של הסקריפט המבצע.
$PSSenderInfo מכיל מידע על המשתמש שהתחיל את ה-PSSession.
$PSUICulture משקף את תרבות ממשק המשתמש (UI) המוגדרת במערכת ההפעלה.
$PWD מייצג את ספריית העבודה הנוכחית של הפעלת PowerShell.
$Sender מכיל את האובייקט שיצר אירוע.
$ShellId מכיל את המזהה של המעטפת הנוכחית.
$StackTrace מאחסן את מעקב הערימה עבור השגיאה האחרונה.
$מתג מכיל את המונה של הצהרת 'Switch'.
$זה מתייחס למופע של מחלקה בבלוקים של סקריפט שמרחיבים מחלקות.
$נכון מייצג את הערך הבוליאני 'True'.

ניתן למצוא את כל 'המשתנים האוטומטיים' ב- PowerShell על ידי הפעלת הפקודה הבאה:

Get-Variable

סיכום

' משתנים אוטומטיים 'מהווים את עמוד השדרה של סקריפטים של PowerShell, ומאפשרים למפתחים לקבל מידע על המערכת, ארגומנטים של שורת הפקודה, הקשר של ביצוע סקריפט ועוד. על ידי רתימת משתנים אוטומטיים כגון '$PSVersionTable', '$Args', '$MyInvocation', '$Error' ואחרים, מפתחי סקריפטים של PowerShell יכולים ליצור נוהלי ניהול מערכת יעילים.