PracticU

משתנה סביבה - Environment Variables ב-PowerShell

בלי כתוביותעם כתוביות
PracticU › קורס PowerShell › משתנה סביבה - Environment Variables ב-PowerShell
מילון מושגים:
משתנה סביבה - ערך בעל שם שמוגדר במערכת ההפעלה ומשמש תוכנות להגדרות, כמו נתיבים או מפתחות תצורה.
PowerShell - סביבת שורת פקודה ושפת סקריפטים של מיקרוסופט לניהול אוטומטי של מערכות Windows ושירותים.
סשן - פרק זמן של פעילות רציפה בין משתמש למערכת, שבו נשמר מידע על מצבו, למשל לאחר התחברות לאתר.
רג'יסטרי - מסד נתונים מרכזי ב-Windows ששומר הגדרות של מערכת ההפעלה ושל תוכנות מותקנות.
נתיב - מחרוזת שמתארת את מיקומו של קובץ או תיקייה במערכת הקבצים, או כתובת של משאב בתוך אתר.
.NET - פלטפורמת פיתוח של מיקרוסופט להרצת יישומים בשפות כמו C#, הכוללת ספריות וסביבת ריצה משותפות.
אדמיניסטרטור - משתמש בעל הרשאות הניהול הגבוהות ביותר במערכת, שיכול לשנות הגדרות, להתקין תוכנות ולנהל משתמשים אחרים.
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.

משתנה סביבה - Environment Variables ב-PowerShell
ב-PowerShell אפשר לקרוא, ליצור ולמחוק משתני סביבה בכמה דרכים, וההבדל החשוב ביניהן הוא אם השינוי נשמר רק לסשן הנוכחי או לצמיתות. ההרצאה עוברת על שלוש הדרכים.
שלוש דרכי עבודה
1. כמו כונן: משתני הסביבה חשופים דרך PS Provider, ולכן אפשר להריץ Get-ChildItem Env: (או dir שהוא alias שלו) ולראות אותם כמו קבצים, בדיוק כמו ב-Registry. אפשר גם להיכנס אליו עם Set-Location.
2. המשתנה $env: הדרך הנוחה לקריאה, למשל $env:Path. מקש Tab עובר בין שמות המשתנים.
3. פיצול PATH: $env:Path -split ';' מציג את התיקיות שורה אחרי שורה, ורואים איפה המערכת מחפשת תוכנות כמו calc.
4. יצירה בסשן: $env:AAA = 111, או יצירה דרך הכונן. שניהם נעלמים כשסוגרים את החלון.
5. שמירה קבועה: משתמשים ב-.NET: [Environment]::SetEnvironmentVariable('BBB','222','Machine') לכל המשתמשים, או 'User' למשתמש הנוכחי. ברמת Machine נדרשת הרצה כאדמיניסטרטור.
6. מחיקה קבועה: אותה פונקציה עם ערך $null. Remove-Item מוחק רק בסשן הנוכחי, והמשתנה חוזר אחרי פתיחה מחדש.
7. הוספה ל-PATH: $env:Path += ';התיקייה' עובד לסשן בלבד. לשמירה קבועה בונים משתנה זמני, למשל $newPath, ומכניסים אותו עם SetEnvironmentVariable ברמת Machine.
שימו לב
1. בלי הרשאות אדמיניסטרטור מתקבלת שגיאה של גישה אסורה לרג'יסטרי.
2. כדי שהערך החדש יופיע צריך לפתוח חלון חדש.
3. בהרכבת PATH חדש חשוב לא לשכוח נקודה-פסיק בין הערכים.
אחרי ההרצאה תדעו לבחור בין שינוי זמני לבין שינוי קבוע של משתנה סביבה.
השיעור הבא בקורס: פקודת Get-WinEvent חלק 2

פרקי ההרצאה: משתנה סביבה - Environment Variables ב-PowerShell

  1. 00:00

    משתני סביבה ב-PowerShell

  2. 00:58

    קריאה עם Get-ChildItem

  3. 02:56

    גישה דרך כונן env

  4. 04:27

    הגדרת משתנה per process

  5. 05:42

    משתנה קבוע למשתמש

  6. 07:36

    הרצה כ-Administrator

תמלול ההרצאה: משתנה סביבה - Environment Variables ב-PowerShell

הטקסט המלא של הדקות הראשונות בהרצאה «משתנה סביבה - Environment Variables ב-PowerShell» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם בהרצאה הזאת אנחנו נדבר על משתני סביבה על ידי פאוורשל אנחנו פותחים עכשיו את הפאוורשל שלנו ואנחנו רוצים לראות איזה משתני סביבה יש לנו ואיך עובדים איתם אז בפאוורשל הם עשו שמשתני סביבה יהיו דרך פי-אס פרוביידר מה זה פי-אס פרוביידר זה ספק של כוננים פאוורשל פרוביידר

  2. 00:29

    כמו כונן C ו-D שאני יכול לגשת אליהם בצורה שבה אני עושה דיר על כונן C, אני יכול לעשות אותו דבר על משתני סביבה. שימו לב איזה מדהים זה. אז הם בצורה הזאת מנגישים לנו את משתני הסביבה בצורת כמו כונן.

  3. 00:48

    דרך אגב, הם עושים אותו דבר ל-registry. אני יכול לעשות דיר לתוך רג'יסטרי. אתם יודעים איך דרך אגב עושים דיר? אליאס דיר. אני יכול לראות שדיר זה למעשה אליאס קיצור לפקודה get child item.

  4. 01:04

    אני יכול לעשות get child item נניח על רג'יסטרי בואו נעשה שנייה על קונן סי שתראו על קונן סי זה עובד ואני יכול לעשות את זה על hk current user על רג'יסטרי ואני עכשיו רואה את הרג'יסטרי של המחשב שלי בצורת התיקיות וקבצים אז אותו דבר כמו שאני רואה את רג'יסטרי בצורת תיקיות וקבצים כך גם אני יכול לעשות על environment אתם רואים פה כתוב environment אז אני יכול

  5. 01:35

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

  6. 02:00

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

  7. 02:17

    דרך אגב, אנחנו יכולים ממש להיכנס פנימה. אנחנו יכולים לעשות Set Location וכמו ש-Location וממש לעבור אליו כמו שעוברים לכונן C, ותראו איפה נהיינו, נהיינו בתוך ה-ENV במקום בכונן C.

  8. 02:32

    ועכשיו דרך אגב דיר גם יעבוד. אתם רואים, אני עושה דיר בתוך כונן של Environment. כאילו נותנים לי ממש הרגשה כאילו אני בתוך הכונן, ככה קל לי לעבוד, אבל זה עדיין לא הכי קל בעולם לעבוד ככה.

  9. 02:46

    יש לנו משתנה-ENV. משתנה-ENV נותן לנו אותה תוצאה, אז במקום לרשום את כל הסיפור הזה של Get Child Item מתוך Environment, אני יכול לעשות בשיטה אחרת וזה על ידי משתנה עזר, נניח נגיד לו שיראה לנו את ה-Path שזה המשתנה הכי חשוב כי יש בו רשימת תיקיות שצריך לחפש בפנים והנה אני מקבל את הערך של המשתנה Path שימו לב אני יכול ללחוץ Tab ולעבור בין

  10. 03:19

    כולם הנה תראו Computer Name שם של המחשב שלי אני יכול לעשות P-Path אתם רואים אני עובר בין כל מה שעם אות P כי כתבתי P ולחצתי Tab אז הנה Path עכשיו הדבר היחיד שלא נוח לי לראות את הפאת ככה אז אני אעשה לו ספליט תפצה לי אותם לשורות נפרדות לפי נקודה פסיק ואז הוא ייקח את זה ויכתוב לי את אותו השורה מפוצלת להרבה שורות

  11. 03:46

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

  12. 04:03

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

  13. 04:20

    מה קורה אם אני רוצה להוסיף משתנה משלי, ליצור משתנה משלי? אז אני יכול לעשות את זה בצורה פשוטה, אני כותב env.2 ונותן לזה שם, נעשה aaa שווה 111 ואחרי שעשיתי את זה יש לי nv אני עושה נקודתיים aaa אתם רואים הוא נהיה פה aaa וגם אם נעשה בשיטה פחות נוחה בשיטה ישנה בוא נעשה בשיטה ישנה get child item שזה מודיר תראה לי את הקבצים וניתן לו path שזה environment נקודתיים סלאש אנחנו

  14. 05:00

    מסתכלים בזה כמו כונן אנחנו רואים שזה כאן קיים. אז יש לנו שתי שיטות לגשת, אחת על ידי משתנה environment, השנייה כמו כונן רגיל. אבל יש בעיה שאם אני אסגור את זה ואני אפתח מחדש ואני אעשה get child item על env, אתם תראו שאין לי יותר aaa.

  15. 05:22

    למה? כי זה per session, per process. אם אני רוצה לעשות את זה קבוע לכל התוכנות במחשב, אז אני יכול לגשת לתוך המבנה של המחשב, ל-My Computer Properties Advanced, Environment Variable ולהוסיף פה את המשתנה אם זה לכל היוזרים או רק ליוזר ספציפי להוסיף אותו כאן. ללחוץ New ולעשות AAA שווה 111.

  16. 05:48

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

  17. 06:10

    אבל אם אני לא רוצה לעשות את זה דרך ממשק גרפי, אם אני רוצה לעשות את אותה הפעולה דרך פקודות, מה קורה אם אני רוצה דרך פקודות לעשות את זה?

  18. 06:19

    שימו לב שיש לנו פה, מחקנו את ה-AAA, זהו, הוא לא קיים יותר. אם אני עושה environment הוא לא קיים, מחקתי אותו. עכשיו אני רוצה לעשות את אותה הפעולה של הוספה לשמה רק מתוך שורת פקודה.

  19. 06:33

    זאת אומרת שאני רוצה עכשיו מתוך שורת פקודה להוסיף לרשימה ה-E של הדברים הקבועים את המשתנה סביבה שלי. איך אני עושה את זה? קודם כל אנחנו רואים ש-Get Child Item בתוך ה-ENV לא נותן לי איי איי איי.

  20. 06:50

    השמדנו אותו וזה לא נותן. עכשיו אני מראה לכם איך אפשר להוסיף אותו לרשימה ה-E על ידי הפקודה. ובשביל הדבר הזה אנחנו נשתמש ב-Dotnet.

  21. 07:02

    אנחנו נפנה לאובייקט של .NET שעושים אותו בסוגריים באים environment ומפעילים פונקציה set environment variable ונעשה את ה-set environment variable לקבוע משתנה סביבה נקרא לו bbb הפעם נכניס לו ערך 222 ונכניס אותו לרמת מכונה זה אומר לכל היוזרים ברגע שאני מריץ את הפקודה

  22. 07:24

    הזאת ה-request registry access is not allowed אסור לי לעשות את זה למה אסור לי לעשות את הפקודה הזאת כי אני לא עם הרשאות של אדמיניסטרטור בואו נסגור את זה, נפתח את ה-run as administrator כי צריך הרשאות של אדמיניסטרטור כדי לשנות לכולם.

  23. 07:42

    הנה שינינו לכולם ועכשיו אנחנו נראה שבפרופרטיז ב-advanced environment variable הופיע פה bbb זה מה שרציתי. אני יכול גם להוסיף את זה לרמת user ספציפי שזה רמת user שלי.

  24. 07:57

    שימו לב הפקודה הזאת מוסיפה ccc333 לרמת user ולא לרמת מחשב. זאת אומרת שכאן במשתנה סביבה ב-Environment

לקורס המלא: קורס PowerShell אונליין

ההרצאה הקודמת: כלי לניהול דיסקים ומחיצות בוונדוס 10 - Powershell

ההרצאה הבאה: פקודת Get-WinEvent - חלק 1

הרצאות קשורות מקורסים אחרים

  • משתנה סביבה - Environment Variables ב-CMD
  • משתנה סביבה - Environment variable
  • ENVIRONMENT VARIABLES
  • Creating Variables

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס קוברנטיקס - Kubernetes
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס Git ו-GitHub עם Visual Studio