
Get-Process מציג את כל התהליכים, ו--Name calc מסנן רק את המחשבון. לכל תהליך יש מספר זיהוי (Id) משלו, ולכן אפשר לפתוח כמה מחשבונים ולהבחין ביניהם.Format-List * מציג את כל השדות בשורות, כולל מקום ההרצה, אבל בלי שם המשתמש.StartInfo הוא אובייקט שנמצא בתוך אובייקט התהליך. שמים את הפלט בסוגריים כדי לטפל בו כחתיכה אחת, ואז ניגשים ל-StartInfo.StartInfo נמצא האוסף EnvironmentVariables, ובו המשתנה USERNAME שמציין מי הפעיל את התהליך.Where-Object עובר על כל השורות ומציג רק את השורה שבה העמודה Name שווה ל-USERNAME.$mycalcs = Get-Process calc מעתיק את נתוני התהליכים למשתנה, וממשיכים לעבוד איתם גם אחרי שסוגרים את המחשבונים.PATH מכיל את התיקיות שבהן המערכת מחפשת קבצי הרצה, ולכן calc נפתח גם כשאינו בתיקייה הנוכחית.הטקסט המלא של הדקות הראשונות בהרצאה «אובייקט בתוך אובייקט ב-PowerShell» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בהרצאה הזאת אנחנו נלמד לחפור בתוך האובייקט להוציא ממנו קלאס בתוך קלאס ואת הנתונים המוסתרים יותר שזה מאוד מאוד חשוב כי לפעמים הנתונים לא כל כך גלויים לדוגמה יש לנו מחשבון שרץ ואנחנו רוצים לדעת מי הפעיל אותו או איזשהו תהליך אחר במחשב ואנחנו רוצים לדעת
מי היוזרים שמפעילים את התהליך הזה או את התוכנה הזאת על כל המחשבים בחברה אז ניקח את המחשבון ואנחנו נעשה את זה על מחשב לוקאלי כל מה שאני עושה אתם כבר צריכים לדעת לשכפל את זה למחשבים אחרים או שתראו את זה בסרטונים אחרים איך אנחנו עושים את זה על הרבה מחשבים כרגע אנחנו נחפור פשוט
נלמד לחפור לעומק בתוך האובייקטים של פאוורשל אז get process אנחנו רואים את כל התהליכים שרצים במחשב שלי ואנחנו יכולים לרשום מינוס קאלק והוא מראה לי רק את המחשבון כי process name השם של התהליך שם של התוכנה זה קאלק יפה מאוד יכולנו גם לרשום מינוס process name, שם העמודה
שאנחנו רוצים, ו-calc. יכולנו באותה מידה לרשום מינוס שם העמודה האחרת, נניח איזושהי עמודה אחרת, וכל מיני פילטרים שיש לו. אתם רואים מינוס name, מינוס id.
id זה מספר תהליך. אתם רואים מספר תהליך 3496. כל תהליך, כל process שאתם פותחים מקבל מספר סידורי במערכת. אם אני אפתח עוד calc, יהיה לו מספר סידורי אחר.
כן הנה אתם רואים זה קאלק אם זה מעניין אתכם הנה פתחתי עוד מחשבון אתם רואים יש לי עכשיו שני מחשבונים אחד תהליך 349 ואחד 6204 יפה מאוד אז יש לנו תהליך של מחשבון ואנחנו רוצים לדעת מי פתח אותו מי היוזר שמריץ אותו תחשבו שזה לא מחשבון שזה איזושהי תוכנה ויש לכם חברה גדולה ואתם רוצים לדעת מי מריץ כרגע את התוכנה
הזו אז אם אנחנו נתחיל לבדוק איך אנחנו נתחיל לבדוק אין לי פה יוזרניים נכון אין לי פה יוזרניים נמסר לי פה יוזרניים, אתם יודעים בטאסק מנאג'ר יש לי יוזרניים הרי, נכון?
בטאסק מנאג'ר אם אנחנו נלך לקאלק, אתם רואים running journey, ג'וני מעריץ אותו. אז זאת אומרת שהמידע הזה איכשהו קיים.
עכשיו אנחנו רוצים להוציא אותו בפאורשל כי אנחנו רוצים לראות את התוכנה הזאת על כל המחשבים בארגון. יפה מאוד.
אז איך אנחנו עושים? אין לי פה עמודה, כנראה שהעמודה הזאת היא לא גלויה, היא לא דיפולט, אתם רואים יש פה איזה 5-6 עמודות דיפולט, אני רואה פה 8 עמודות דיפולט, אבל יש הרבה יותר, אני עושה פורמט ליסט, כן, FL, פורמט ליסט כוכבי, תראה לי בשורה את כל העמודות ולא בטבלה, לא בעמודות אלא בשורות,
הנה הוא מראה לי הכל ואני נורא שמח כי אני רואה פה את כל השדות של הפרוצס, אתם רואים? של המחשבון, אני רואה שזה מחשבון, אני רואה את כל הנתונים שלו, גם מאיפה הריצו אותו, זה המון המון נתונים, רק חסר לי מי היוזר שהריץ אותו.
אתם רואים? חסר לי מי היוזר שהריץ אותו. יפה מאוד. אז מה אנחנו עושים? אז תראו את זה. אני מתחיל לחשוד שבסטארט אינפו יש את היוזר הזה.
אבל סטארט אינפו זה לא מידע כמו פה, שזה מספר או משהו שאפשר לקרוא, זה אובייקט. זאת אומרת, זה אובייקט בתוך אובייקט. וזה מאוד חשוב שזה אובייקט בתוך אובייקט, ובתוך האובייקט הזה יש את הנתונים.
בואו נראה, בואו נראה איך אנחנו מגיעים. אז אנחנו עושים דבר כזה, אנחנו לוקחים את הפלט הזה, שזה הפלט, שמים אותו בסוגריים. ברגע שאני שם אותו בסוגריים, אני מתייחס אליו כחתיכה אחת.
זו אותה תוצאה. עכשיו, לכל החתיכה הזאת, לאובייקט הזה, אני אומר לו, תציג לי את המאפיין שלך שנקרא SystemInfo, זה השם של המאפיין, אוקיי? SystemInfo.
תציג לי את השדה הזה אוקיי אז הוא לוקח את כל הפלט שזה במקרה זה שורה אחת ומציג לי את הסטארט אינפו שלו מי שרוצה ללמוד יותר לעומק לומדים את זה בקורס c-sharp ביסודות התכנות ביסודות התכנות וזה בכלל נקרא אובייקט אוריינטד אובייקט בתוך אובייקט כל הנושא של אובייקט אוריינטד אתם לומדים את זה ביסודות התכנות של c-sharp עקרונית מה שקורה שבעצם power shell זה מעטפת שעוטפת את הקלאסים של
בסופו של דבר, כל הפאורו של זה C-Sharp, אני אספר לכם סוד. וכל מה שאתם עושים זה בעצם כמו לתכנת, אבל בקלות. אז אתם צריכים קצת להבין את הראש של התכנות.
אז שימו לב, עכשיו אנחנו בתוך הסטארט אינפוס של הפרוצס הזה. יפה מאוד. אנחנו יכולים להמשיך ככה לחפור, ומה אני רואה פה? אני רואה פה שיש לנו יוזרניים, אבל שימו לב, היוזרניים הזה ריק.
היוזרניים הזה ריק, וזאת באסה, כי היוזרניים הזה היה מאוד עוזר לי, כי הייתי פשוט להשיג אותו וזה הייתי רואה את היוזר שלי אז מה עושים מה עושים אני רואה פה שיש פה משתני סביבה environment variables מה זה משתני סביבה סתם לידע כללי זה עוד לכל תהליך יש לו את האקסטרות שלו בואו תראו לדוגמה כשאתם עושים פקודת סד בדוס רגיל אתם
מקבלים פה את כל משתני הסביבה אתם יכולים גם לשנות אותם כל המשתני הסביבה האלו אתם יכולים לשנות אותם באדוונס של היוזר ויש פה יוזרניים אתם רואים יש פה המון המון המון משתנים ואחד מהם זה היוזרניים, תכף אנחנו נמצא אותו ונוציא אותו משם.
אוקיי, יש פה בוודאות יוזרניים, הנה יוזרניים ג'ורני. עכשיו המשתני סביבה האלו עוזרים לכם, זה כמו לתכנת, פעם היו משתמשים בזה הרבה, לדוגמה נניח אני מריץ איזושהי תוכנה ואני רוצה לדעת איפה הפרוגרם פיילס של הבן אדם, אז יש לי משתנה סביבה שנקרא פרוגרם פיילס, שאני רוצה לדעת איפה תיקיית בית שלו או איפה הטמפ שלו, איפה תיקייה זמנית, לשים בה כל מיני
דברים שלי. אז תחשבו שאני כותב עכשיו תוכנה, אני לא יודע איפה הטמפ של אותו בן אדם נמצא, איפה הטמפ שלו, ואני צריך זמנית לשמור איזה משהו. אוקיי?
אז אני יכול מתוך הקוד שלי או מתוך הסקריפט שלי לעשות לדוגמה echo אחוז טמפ אחוז, כן? אחוז טמפ אחוז, ואני מקבל בעצם את תיקיית הטמפ שלו.
אז משתנה הסביבה זה כמו משתנים כאלו שעוזרים לתוכנה לדעת מה קורה במחשב הספציפי שלך. לדוגמה שזה מחשב 64 ביט או 32 ביט, כל מיני משתני סביבה. זה עוד מהימים של הדוס, שבימים של הדוס היו משתמשים בזה המון.
והיינו פותחים משתני סביבה חדשים. סתם לדוגמה, אני פותח משתנה סביבה מי וואר אחד ואני יכול לעשות שווה. עכשיו, אתם רואים, יש לי פה מייבר אחד, צריך לראות, ווינדי, ואתם רואים איפה הסעיף תקייה של הווינדוס, והנה מייבר אחד, ואתם יכולים גם לשנות אותם, ויש משתנה סביבה שמערכת הפעלה משתמשת בהם, כמו path,
path זה איפה לחפש את התוכנות. נניח כתבתי קאלק, איך היא ידעה ללכת ל-C Windows System 32 ולהפעיל שם קאלק נקודה XE, איך כשאני כותב פה קאלק היא יודעת ללכת, או קאלק נקודה XE, איך היא יודעת באיזה תקייה זה נמצא.
זה נקרא משתנה סביבה. יש פה ב-path רשומים תיקיות שבהן מחפשים by default אם תוכנה לא נמצאת בתיקיה הנוכחית. לדוגמה, אתם רואים, אני ב-Cusers Journey, אתם רואים ש-calc.exe לא נמצא פה.
אז אין פה בתיקיה הזאת Calc.exe, אבל אם אני ארשום Calc.exe הוא כן יפעיל את עוד מחשבות. איך הוא ידע? הוא הלך לחפש את קובץ ה-exe הזה בכל התיקיות שרשומות תחת path של משתנה סביבה.
אמרו אם הוא הלך לחפש בתיקייה הזאת ובתיקייה הזאת הוא מצא את זה ויש עוד תיקיות אחרות ככה בעצם זה נקרא תיקיית path איפה לחפש אם זה לא נמצא ברירת מחדל אם אתם רוצים דרך אגב לשנות את זה אני לא יודע למה אנחנו מדברים על זה בכלל אבל סתם שתדעו שיש לכם פה איפשהו בסיסטמפ ואדוונס יוזר environment variables משתנה סביבה
ופה אתם קובעים אותם יש משתנה סביבה ליוני ויש לסיסטמפ ואתם יכולים לראות פה שיש פה path ואז אני יכול להגיד שאתם רואים, תחפש בתיקייה של סקייפ לא יודע, גוגל, סינק, סמנט זיפ הכניס פה דברים ואני יכול גם להוסיף פה איזה משהו לדוגמת תיקייה שנקראת caa
ואז ברגע שאני אפעיל cmd חדש אם הפעלתי cmd חדש ב-path צריך להופיע aaa שלי ושם הוא גם יחפש את הקובץ, הנה אתם רואים ואני אשים עכשיו איזשהו קובץ בתוך ה-A, ואז הוא יחפש אותו מכל מקום שתרשמו את השם של הקובץ.
זה סתם שתדעו שזה משתנה סביבה שיש גם של ה-System, יש גם של ה-User, הם עוזרים לקבוע כל מיני דברים במערכת, וגם אתם כמתכנתים יכולים להשתמש בזה בסקריפטים.
כשאתם כותבים סקריפטים בדוס, שלא נראה לי שהיום כותבים סקריפטים בדוס, אבל שתדעו להבין שמכניסים משהו זמני למשתנה סביבה הזה תוך כדי התוכנה, ואז מחלצים את זה משמה, אוקיי?
לדוגמה, אני יכול לעשות set var11 שווה 343, ואז אני יכול לעשות echo 1, var11. וככה אפשר היה לעשות כל מיני סקריפטים בימים של DOS. עכשיו, אני סתם סיפרתי לכם את זה, כי אני צריך שתדעו שיש פה יוזרניים, שאנחנו חוזרים לימים של פאורשל, ב-power shell אנחנו מנצלים את המשתנה סביבה של פעם כדי להוציא את ה-user.
אז אתם רואים ככה, אנחנו חוזרים, לקחנו את האובייקט הספציפי, חילצנו ממנו את הקלאס שנקרא start info, נכנסנו לתוך ה-start info שלו, ועכשיו אנחנו נכנסים פה ל-environment variable, שימו לב, זה לא ערך אחד, יש פה סוגריים עם הרבה ערכים, אתם יכולים לעשות get member כדי לראות מהו הטיפוס של הנתונים,
סוג של הנתונים ואתם יכולים לראות פה שהטיפוס של environment variable זה property מסוג כזה וכזה כן אני מי שלומד c-sharp יודע מה זה collection ומה זה dictionary ולא עכשיו מה שמעניין אתכם זה שאנחנו יכולים לעשות נקודה environment variable ולקבל את כל משתנה הסביבה אתם רואים אנחנו חופרים בתוך אחד בתוך
שני בתוך שלישי יפה מאוד וקיבלנו את המשתנה הסביבה של הקאלק שימו לב של הקאלק שלנו