
Win32_.-ComputerName עם שם מחשב אחד או יותר. התוצאה מגיעה מכל המחשבים יחד.[int] כדי לקבל מספר שלם.Win32_.הטקסט המלא של הדקות הראשונות בהרצאה «WMI» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
ברוכים הבאים לסרט השני על פאורשייל. הסרט הראשון היה מאוד מאוד כבד ומאוד קשה. הסרט השני, שזה הסרט הזה, הולך להתעסק, זה החלק השני, שהולך להתעסק ב-WMI. מה זה WMI?
זה בעצם צורת הצגת אובייקטים כלפי חוץ. זה תקן שנקבע כבר מלפני 15 שנה בין כל החברות הגדולות, שיהיה להם איזשהו ממשק אחיד להציג דברים כלפי חוץ.
ומייקרוסופט עשו בעצם את ה-WMI בשביל לעמוד בתקן הזה, ובעצם כל הוויז'ואל בייסיק, כל הסקריפטים של וויז'ואל בייסיק שהיו לפני הפאורשל, כולם עובדים על WMI, זאת הצורה בעצם איך שאתם מתחברים לאובייקטים שמעניינים אתכם, כמו מקום פנוי בדיסק, מעבד, סוג, מערכת הפעלה, SQL, DNS,
כל דבר מוצג החוצה בצורת תקן שנקרא WMI. בגלל שהתקן הזה כל כך חזק, יש לו הרבה דברים שהתפתחו במשך 15 שנה שפאורשל עדיין לא יודע לעשות, ואנחנו רוצים קצת לתרגל, קצת לשחק איתו.
לדוגמה, ניקח לעצמנו משימה, להראות לנו, להראות את המקום הפנוי שיש בכל החברה. יש לנו Active Directory עם כל המחשבים של כל החברה.
אנחנו רוצים לראות מקום פנוי בכל המחשבים שיש. ששם הולך להיגמר המקום, שיש פחות מ-500 מגה. תראה לי את כל המחשבים בכל החברה שמקום פנוי שם פחות מ-500 מגה.
עכשיו, ואנחנו ניגש ל-WMI ונראה איך אנחנו עושים את זה. אז הפקודה הראשונה זה Get WMI Object, תביא לי אובייקט של WMI, אני לא יודע איזה אובייקט אני רוצה, אז אני עושה לו תראה לי את הרשימה.
הוא מתחיל להראות לי רשימה של כל האובייקטים, אחרי שאני אדע איזה אובייקט אני רוצה אני אכתוב לו, אבל אני לא יודע, אז אני אומר לו תראה לי את כל האובייקטים שיש לך.
תראו חבר'ה, כן, כל זה רשימת אובייקטים וזה לא נגמר, פשוט אני אביא עוד שנייה עוד, זאת רשימה ענקית, תסתכלו כמה הרשימה הזאת היא ענקית, תסתכלו, זה פשוט משהו לא יאומן.
ככה יש לו הרבה אובייקטים, וכמות האובייקטים הזאת משתנה לפי בעצם ההתקנות שאתם עושים. התקנתם DNS, יש לכם אובייקטים של DNS.
התקנתם עוד משהו, יש לכם אובייקטים של Active Directory. עכשיו, אני יכול ב-WMI הזה לתבוע, בשביל זה אפשר להביא תוכנה חיצונית שיודעת לעשות לי כמו סייר כזה, כמו Explorer כזה ל-WMI, פחות לא צריכים את זה כי אנחנו יודעים שאנחנו מחפשים משהו שקשור לדיסקים.
אז אני לוקח את כל הרשימה הזאתי ומכניס למסננת שנקראת where object. where object עושה לי סינון לפי התנאים שאני אגיד לו פה.
אתם רואים פה אני נותן לו תנאים. איזה תנאי אני אתן לו? אני אתן לו תנאי שהשם יהיה משהו שקשור לדיסק. אתם רואים העמודה הראשונה נקראת name.
אז אני אתן לו פה שמה שנכנס לך בפייפ, כל הרשימה הזאת נכנסת לפייפ למסננת שנקראת where object. וויר אובייקט זה פקודה מוכנה שיש בתוך פאוורשל.
אז אני אומר לו, תקשיב, איפה שהשם, match, כן, דיסק. איפה שיש לו שם דיסק, אוקיי? זאת אומרת, וויר אובייקט יעבור על כל הרשימה שהוא קיבל בפייפ ויבצע את הקוד שכתבתי לו פה.
הקוד שאני מבצע מחזיר לו true או false, אמת או לא אמת. מה שעונה לקריטריון הזה, מה שעונה אמת, זאת אומרת, האובייקט הנוכחי, השם שלו, יש לו דיסק, מה שאמת יישאר, מה שלא אמת יעוף, החוצה, ואז פה בחוץ, ואז אני אקבל על המסך בעצם רק מה שיש לו דיסק.
תראו, בדיסק אין כבר כל כך הרבה דברים, כבר אפשר להבין לבד. החיסרון של WMI שאין לו help מובנה, אין לו עזרה מובנית, צריך ללכת באינטרנט לחפש, זה לא כמו PowerShell שיש לו עזרה מובנית.
אוקיי, אז אני רואה פה win32 LogicalDisk. רוב הדברים שתצטרכו אי פעם מתחילים ב-win32, ככה זה רמז, תחפשו win32, זה יחסוך לכם הרבה טרחה. אז אני עושה ווין 32 לוג'יקל דיסק, בואו נראה מה יש בתוכו.
Get WMI Object, רווח שם של אובייקט. Get WMI Object, רווח שם של אובייקט, מחזיר לי בעצם את הכוננים, אתם רואים? Get WMI 32 לוג'יקל דיסק, מחזיר לי את C, כמה free space, כמה size, D, כמה free space, כמה size.
טוב מאוד. עכשיו אני רוצה לעשות את זה מינוס Computer Name, ולהריץ את זה גם על מחשב אחר, יוני מקף PC. זה מחשב מרוחק, בואו ננסה.
הנה יש לו CVD, זה גם עובד על מחשב מרוחק וגם על שני מחשבים ביחד. תראו איזה יופי. היתרון של WMI שהוא עובד, הוא מיועד לעבוד מרחוק, הוא מיועד לזה.
אז כל מיני בעיות שיש בפאור של רגיל נפתרות ב-WMI. דרך אגב, בפאור של אחד לא הייתה אופציה בכלל לעבוד מרחוק, אז הכל היה דרך WMI.
כל הוויז'ואל בייסיק עובד ב-WMI, אז כל הלוגיקה שלי זה בעצם מאוד מאוד חזקה, אתם חייבים להכיר את זה. אז get wmi object תביא לי אובייקט שנקרא 32 דיסק, לוג'יקל דיסק, ותביא את זה מכל המחשבים האלו.
אתם רואים? ואז הוא הביא לי cd וe, c וd ממחשב יוני PC, מווינדוס 7, ו-cd ו-f מפה. טוב מאוד, אנחנו כבר מתקדמים יפה, רק אתם יודעים מה?
בואו אני אעשה לעצמי חיים קלים, אני אעתיק את כל זה לסביבה גרפית, אני מעדיף סביבה גרפית, יותר קל לי לעבוד. Windows PowerShell ISI, ISI זה סביבה גרפית, יש לי פה גם מוצרים אחרים שלא מובנים בווינדוס, כן?
כל מיני תוכנות מתחרות, כגון פאור גווי, שזאת תוכנה חינמית, פאור גווי, שהיא גם כן עורכת לי סקריפטים ופקודות והכול.
זאת גם אחלה תוכנה שגם בה אפשר לעבוד, אבל בואו נישאר עם התוכנה החינמית שמובנית בווינדוס, למרות שפאור גווי הזאתי, אני אישית מת עליה, אוקיי?
אז תראו, גם אם הראה לי פה את המשתנים שיש וגם את הזה, זה ממש נוח לעבוד בפרוגוי. יודעים מה? בואו נעבוד בפרוגוי, ניתן לו קצת הזדמנות.
אז נריץ את זה, נראה שהוא מייבא לי את האקטיב. הנה, הנה, נתן לי את הפלט הזה, מצוין, זה הפלט שרציתי, מצוין. רק מה הקטע?
שאני רוצה, חבר'ה, המטרה שלי לקבל טבלה, קונן C, רק C, לא D, לא E ולא F, מעניין אותי בקונן ה-C שהולך להיגמר להם מקום בכל ה-Active Directory שלי. השיא שהולך להיגמר שם המקום.
אז עשיתי בינתיים get wmi object, הבאתי את האובייקט מכל המחשבים, התחלה מצוינת. עכשיו צריך להעיף את כל מי שלא שיא. אז אני רואה שיש לי פה תכונה שנקראת device ID, אני לוקח ואני אשתמש בתכונה הזאתי כמסננת.
טוב, תראו, wmi object הזה, אני לא יודע, אני לוקח את כל הפלט שלו ומכניס למסננת. איך נקראת המסננת ב... תראו, where, אתם רואים? שמתם לב? כתבתי where, והוא כבר כותב לי איזה אופציות יש לי.
זה נקרא Intellisense, כן? וה-Intellisense הזה גם מראה לי איזה סינטקס אני כותב בפקודה, where object, ומה אני יכול לכתוב פה.
תראו איזה יופי. אתם רואים? זה נקרא ScriptBlock, כן? בואו נראה. where object, ועכשיו אני כותב לו מה לסנן. שימו לב, אני סוגר סוגריים, הוא מראה לי איזה סוגריים, אני סוגר ממש נוח נוח.
אז טוב מאוד, where object, אני כותב לו פה את מה לסנן. הוא קיבל בפייפ בעצם את מה שראינו, את כל הכוננים, ואני אומר לו, תקשיב, תסנן איפה שהשדה device ID, match, אני אוהב את ה-match הזה, כי זה regular expression, זה מאוד חזק.
אנחנו נלמד אחרי זה אולי מה זה regular expression, ואתם תראו ש-match זה אחד הדברים החזקים. C.2. אוקיי, מה זה עושה? החלק הראשון עד הפייפ יפלוט לי את כל הכוננים בכל המחשבים האלו, ובהמשך הדרך גם נעשה שהוא ייקח את זה מהכתיב דירקטור, לבד, בינתיים אנחנו נותנים לו רשימה
עדנית כי אנחנו בונים את זה לוגית שלב אחרי שלב בהתחלה התחלנו מזה שלא ידענו איזה קלאס אנחנו רוצים אחרי זה מצאנו את הקלאס לקחנו ממנו נתונים, אחרי זה הוספנו לזה מחשבים עכשיו סיננו את כל הכוננים שהם לא C, בואו נראה שזה עובד בואו נראה שזה עובד, הנה נשארו לי רק כונני
C בפלט של הסקריפט הזה, טוב מאוד עכשיו אחרי שיש לי כונני C אני רוצה לעשות מזה טבלה, טבלה שאומרת כונן C, כמה מקום פנו יש ובאיזה מחשב יש.
אופס, שימו לב, אין פה מחשב. יש פה איזה קונן, איזה טייפ, איזה זה, אין פה מחשב. טוב, חברים, אני אספר לכם סוד, שהשדות, חמשת השדות האלו שאתם רואים פה, זה לא כל מה שהוא נותן לי, הוא נותן לי הרבה יותר.
פשוט המתכנתים החליטו שזה הדיפולט שלהם להראות לי. איך אני רואה הכל? אני עושה לו פורמט פורמט ליסט, תראה לי רשימה של כל השדות שיש לך, כן?
ואז הוא מראה לי בעצם, הוא מראה לי עכשיו לא את שלושת השדות המסכנים האלו, אלא את כל השדות שיש לו, ואני יכול פה למצוא שדה שיעזור לי, הנה אתם רואים פה, יש רווח, זה האובייקט.
תסתכלו אתם רואים, אובייקט ראשון, אובייקט שני. בואו נעלה למעלה עד הסוף. אובייקט ראשון זה קונן C. בואו נראה איפה יש לנו שם מחשב.
שם מחשב, אני מחפש פה את השם של המחשב שלי. יוני פי-סי, הנה יוני פי-סי, אתם לא זוכרים שהשם של המחשב זה יוני פי-סי? טוב מאוד, סיסטם ניים זה נקרא, שדה נקרא סיסטם ניים, טוב מאוד, אני לוקח את הסיסטם ניים הזה, ואז אני אומר לו, תקשיב, תעשה לי טבלה, תפלוט לי את זה בצורת טבלה,
פורמט טייבל, עם עמודה ראשונה שאומרת סיסטם ניים, סיסטם ניים, עמודה שנייה, אמרנו מה הקונן, device ID, זה השם של הקונן, זאת אומרת, איזה מחשב, איזה קונן, מה אנחנו צריכים, ועוד, מה היה לנו שם, משהו שמעניין אותנו, חזרתי לחלון הפלט, על תוותב לחצתי, פרי ספייס. זוכרים? זה מה
שעניין אותי, הפרי ספייס הזה. כמה מקום פנוי יש. טוב מאוד. ונריץ את זה, נריץ את זה, ונקבל, תראו איזה יופי, מה קיבלנו? קיבלנו פה טבלה שאומרת שם של מחשב, שם של קונן, וכמה מקום פנוי יש.
טוב, כמה מקום פנוי יש, אני לא רוצה בבית, אם אני רוצה בג'יגות. אני רוצה בג'יגות אוקיי אז אנחנו נעשה מפרי ספייס הזה לא נשאיר אותו כמו שזה אנחנו נעשה עמודה חדשה עמודה משלנו שטרודל סוגריים סוגריים פה יוצרים עמודה איך יוצרים עמודה כותבים לייבל תווית שווה פרי ספייס זאת התווית שתהיה למעלה פרי ספייס בסוגריים ג'יגה בייט זה השם שלה ותראו איזה יופי הוא צובע לי בצבעים שאני
אדע שאני לא טועה נקודה פסיק אקספרשן מה לחשב ואני כותב לו שאני רוצה שיחשב לי כזה דבר קח את ה-Free Space וחלק אותו ב-1 ג'יגה בייט.
הוא ייתן לי רשימת ג'יגה בייט. טוב מאוד, נראה לי טוב. בואו ננסה להריץ את זה. אני מריץ את זה. אופס, זה ריק.
זה ריק. למה זה ריק? כשזה ריק, אני אתן לכם רמז. כנראה שצריך לשים כף תחתון נקודה, כן? כף תחתון נקודה.
הנה, תראה איזה חמוד, הוא מעיר לי את כל האופציות שיש לי פה. טוב, תודה רבה. הנה, אני רואה שביוני PC יש 10 ג'יגה פנוי ובשרת יש 5 ג'יגה פנוי.
טוב מאוד, רק את הנקודות האלו אני רוצה להעיף אותם. איך אני מעיף אותם? אני אהפוך אותו לאינטג'ר.
זאת אומרת, אני ארשום פה סוגריים מרובעים אינטג'ר, תעשה לי מספרים שלימים על הביטוי הזה. תראו, אני יודע שזה לא טריוויאלי, אבל אתם תתאמנו על זה ותעשו את זה 20 פעם, אתם תבינו.
אז תראו, שטרודל, סוגר סוגר, זה מייצר לי עמודה חדשה. זה פורמט טייבל, מייצר לי עמודה חדשה. העמודה החדשה שאני מייצר, הכותרת שלה כזאת והביטוי לחישוב שלה לקחת פרי ספייס ולחלק אותו לג'יגה ואני אעשה בסוף בסוף בגלל שזה פורמט טייבל מינוס אאוטו שיעשה לי רוחב עמודות טוב.
אאוטו זה כמו אאוטו סייז, כן זה אותו דבר. פשוט אם אי אפשר לפרש אחרת אפשר לכתוב אאוטו במקום אאוטו סייז. תראו איזה יופי, תראו איזה יופי, אני בפקודה אחת, בשורה אחת של פקודה מצליח לעבור על כל המחשבים ולשלוף את כל המקומות הפנויים שיש לי בקונן C. יפה, אני יכול גם להתחכם ולהגיד לו בוא תיקח את זה מהאקטיב דירקטורי.
בואו ננסה לקחת את זה מהאקטיב דירקטורי, רק אני כבר אומר לכם יהיו לנו בעיות, אל תיבהלו. אוקיי, אז בואו ניקח מהאקטיב דירקטורי, בואו נעבור עכשיו קצת לסביבה אחרת שתראו גם איך עובדים בסביבה אחרת.
היתרון של הסביבה הזאת היא של פאור גווי שכל פעם שאתם כותבים פקודה הוא נותן לך את כל האופציות שיש, אינטליסנס. אבל בואו נעבור לסביבה החינמית שכלולה במוצר, שזאת הסביבה.
זוכרים אותה, ה-SE, היא מותקנת בכל Windows 7. וגם פה יש לנו סקריפט למעלה ויש לנו פקודות מידיעות למטה. זאת אומרת, קח, תריץ את הפקודה, כן?
אני אשים אותה פה, שהיא תהיה לנו פה. טוב, חבר'ה, אנחנו כמעט קרובים לסוף, רק נשאר לנו פה את השמות של המחשבים לשלוף מתוך Active Directory, שלבד יעבור על כל ה-Active Directory וייתן לי את כל המקומות הפנויים בכל הכוננים.
טוב, בואו נראה. בואו נראה. אז אנחנו צריכים פה פקודה get Active Directory Computers. get Active Directory Computers תשלוף לי את כל המחשבים של Active Directory, מינוס פילטר כוכבית.
אני חייב לכתוב פילטר כוכבית, זה אומר אל תסנן לי שום דבר, תראה לי את כולם. טוב, הוא מראה לי את כולם.
אני רוצה רק מ-OU מסוים, אז אני עושה פה, אני יכול לעשות Ldap פילטר, לעשות פילטר, כן? כמו בווינדוס, בשפת Ldap, אני לא נכנס עכשיו לזה.
הדבר שמעניין אותי באמת זה Search Base, מאיפה להתחיל לחפש. אני אומר לו, תתחיל לחפש רק מ-U הזה. זהו U של Domain Controller ששמתי שם את כל המחשבים שאני רוצה שהוא יחפש בהם.
אוקיי, Search Base זה מאיפה להתחיל לחפש.