שימוש בהצהרה ב- PowerShell

Symws Bhzhrh B Powershell



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

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







מטרת הצהרת 'שימוש'.

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



חובות של 'שימוש' בהצהרה

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

תחביר של הצהרת 'משתמש'.



התחביר להצהרת 'משתמש' הוא:





באמצעות מרחב שמות < .NET-namespace >

בואו נסקור את הדוגמה הבאה:



באמצעות מרחב השמות System.IO

$Bytes = [ קוֹבֶץ ] :: ReadAllBytes ( 'D:\c sharp\Linuxhint1.txt' )
[ FileInfo ] ::חָדָשׁ ( 'D:\c sharp\Linuxhint1.txt' )

בקוד שלמעלה, ייעדנו לראשונה את מרחב השמות 'System.IO'. השורה השנייה של התוכנית, [File]::ReadAllBytes(‘D:c sharpLinuxhint1.txt’), קוראת כל בייט מהקובץ שסופק וממקמת אותם במשתנה $Bytes. בשורה השלישית, [FileInfo]::new(‘D:c sharpLinuxhint1.txt’) יוצר מופע חדש של המחלקה FileInfo ומחזיר את האובייקט FileInfo.

'שימוש' בהצהרה עבור מודולים

אנו יכולים גם להשתמש במשפט 'שימוש' לטעינת מחלקות של מודול.

תחביר

באמצעות מודול < שם מודול >

בתחביר זה, ה-'<שם המודול>', מפרט מודול שלם, או נתיב לקובץ מודול יכולים לשמש כערך עבור 'שם מודול'.

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

PowerShell מחפשת את המודול שסופק ב-PSModulePath כאשר '<שם מודול>' הוא שם או מפרט מודול. המפתחות הבאים מרכיבים את ה-hashtable שהוא מפרט מודול:

שם מודול - נדרש. נותן שם למודול המדובר.

GUID אופציונלי - מציין את ה-GUID של המודול.

בנוסף, עליך לציין אחד משלושת המפתחות המפורטים להלן.

גרסה מודול - גרסה מינימלית מותרת של המודול מצוינת באמצעות המאפיין 'ModuleVersion'.

MaximumVersion - מגדיר את הגרסה הגבוהה ביותר המותרת של המודול.

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

מודול השורש (ModuleToProcess) של מודול בינארי או מודול סקריפט מיובא באמצעות הצהרת המודול 'משתמש'. המחלקות המצוינות במודולים מקוננים או בסקריפטים שמקורם בנקודות למודול אינן מיובאות באופן אמין. כל מחלקות שאתה רוצה שיהיו זמינות למשתמשים מחוץ למודול יש לציין במודול הבסיס.

הנה דוגמה:

באמצעות מודול PSReadline

'משתמש' בהצהרה להרכבה

ניתן להשתמש במשפט 'using' גם כדי לטעון מראש סוגים ממכלול NET.

תחביר

באמצעות הרכבה < .NET-assembly-path >

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

תסתכל על דוגמה ליישום ההצהרה 'משתמש' עם 'אסיפה':

באמצעות מערכת assembly.Windows.Forms

בפקודה זו, טענו את המכלול ' System.Windows.Forms' ב- PowerShell באמצעות הצהרת 'using'.

הצהרת 'משתמש' עבור מפתחות Hashtable

' Hash Tables ' הם מבני נתונים ניתנים להתאמה המשמשים ב- PowerShell למגוון מטרות, כולל אחסון נתוני תצורה, אספקת ארגומנטים ל-cmdlet ואחסון נתונים בסקריפטים.

ה-hash ההצפנה עבור המחרוזת ' לינוקס רמז! ' מתקבל באמצעות התסריט הבא:

באמצעות מרחב השמות System.Text
באמצעות מרחב השמות System.IO [ חוּט ] מחרוזת $ = 'הלינוקס רמז!'
[ חוּט ] אלגוריתם $ = 'SHA1'

[ בייט [ ] ] $stringbytes = [ קידוד Unicode ] :: Unicode.GetBytes ( מחרוזת $ )

[ זרם ] $memorystream = [ MemoryStream ] ::חָדָשׁ ( $stringbytes )
$hashfromstream = Get-FileHash -InputStream $memorystream `
-אַלגוֹרִיתְם אלגוריתם $
$hashfromstream .Hash.ToString ( )

קוד PowerShell לעיל מתחיל בייבוא ​​מרחבי השמות הנדרשים לפעולות וקידוד של קבצים. מחרוזת הקלט ואלגוריתם הגיבוב (במקרה זה ' SHA1 '), מוגדרים לאחר מכן. מחרוזת הקלט מקודדת לאחר מכן באמצעות ' Unicode ' כדי ליצור מערך של בתים.

התוכן של מערך הבתים משמש לאחר מכן לבניית ' זרם זיכרון '. ערך ה-hash מזרם הזיכרון מחושב באמצעות האלגוריתם 'SHA1' המסופק על ידי ה-' Get-FileHash 'cmdlet. הסקריפט מסתיים בהדפסת ערך ה-hash שהתקבל כמחרוזת לפלט.

תְפוּקָה

סיכום

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