07/04/2023

מתקין החבילות של מיקרוסופט - הכירו את ה WinGet - המדריך המקיף.


אהלן לכם,
הרבה זמן שלא העלתי חומר לבלוג, ובנתיים אני רוצה להגיד לכם שהמדריך אודות ה PowerShell רץ מאוד חזק ברשת ואתם מגיבים אליו, ונותנים לי המון פידבקים, חיוביים, אז תודה רבה לכם על זה !


כאיש מחשוב שאוהב מאוד את שורת הפקודה, מיקרוסופט מאוד שימחה אותי עם כלי שנקרא WinGet, שמגיע מובנה בגירסאות האחרונות של ווינדוס 10 (21h2 ומעלה - אולי אני טועה, אני כבר שנה עם ווינדוס 11, אז אני לא בטוח באיזו גירסה זה מגיע מובנה), במהלך המדריך הזה, תלמדו כיצד להתקין את מתקין החבילות (שאגב נקרא WinGet) ונלמד כיצד לבצע איתו כל מיני פעולות כמו, התקנה שדרוגים והסרה בצורה שקטה, ניסיתי לבצע איתו אוטומיציה על ידי אינטגרציה בתוך סקריפטים של PowerShell אך זה לא ממש עבד, אם הצלחתם, תעדכנו אותי בתגובות, אשמח לשמוע כיצד ביצעתם את זה.

אז, נתחיל?

מה זה בעצם "מתקין חבילות" ולמה צריך את זה?

למעשה, מתקיני חבילות קיימים כבר שנים על גבי שנים במערכות הפעלה מסוג לינוקס, באובונטו יש את מתקין החבילות שנקרא apt, בפדורה לדוגמא יש את yam, למערכות הפעלה מסוג מיקרוסופט, יש כבר מזמן את Chocolatey, בעצם עם מתקיני החבילות האלה קרה שינוי מאוד גדול ומאוד פרודוקטיבי, בעצם ברגע שהאינטרנט חובר לכל מקום אפשרי, אין יותר צורך להחזיק מאגרי תוכנה מקומית בחברה או על כונני דיסקים בבית או לחלופין על DVD, הכל נמצא ברשת ובתוך שניות ניתן להוריד את רוב התוכנות, בין אם חינמיות ובין אם בתשלום, ובכמה שלבים, אתם נמצאים עם הגירסה הכי עדכנית עם התוכנה שלכם (לצערי הרב, בחלק גדול מהמקרים, העדכונים עושים יותר נזק מתועלת, אך מההבט האבטחתי, תמיד כדי להתקין את העדכונים שהחברות מוציאות) - במיוחד לאור העליה בתדירות נסיונות הפריצה בעולם ובישראל בפרט.

היום נתמקד במתקין החבילות שמיקרוסופט החליטו להטמיע במערכות ההפעלה שלהם לתחנות הקצה - Windows, ניתן לבצע המון פעולות עם WinGet אך אנו נתמקד בעיקריות:

לפני שתתקדמו ! שימו לב:
לפני שתמשיכו לקרוא, וודאו שאכן תוכלו להשתמש במדריך, פתחו את PowerShell והריצו את הפקודה WinGetבמידה וקיבלתם מידע אודות הפקודה, אז הכל תקין, אך במידה וקיבלתם הודעת שגיאה שאומרת שהמערכת לא מזהה את הפקודה winget, כנראה שאתם צריכים להתקין את Winget - ניתן לבצע התקנה מתוך חנות האפליקציות של מיקרוסופט, בצעו חיפוש של winget ובעצם יופיע כמה אפשרויות, אתם צריכים לבחור את האפשרות הזאת:




Search - נתחיל בדבר הכי טבעי, נצא מנקודת הנחה שאנחנו לא יודעים איזו תוכנה אנחנו מחפשים, ואנחנו מחפשים תוכנה חינמית לפריסת קבצי Zip - אז נריץ את הפקודה הכי טבעית - winget search zip (אני אוהב להשתמש ב Powershell אבל אתם יכולים להשתמש גם בשורת הפקודה הרגילה שהיא CMD, אגב אם עוד לא יצא לכם להשתמש ב PowerShell והייתם רוצים ללמוד על שורת הפקודה המדהימה הזאת, גם אם בחיים לא פתחתם אותו, בדיוק בשבילכם יש מדריך בין 10 חלקים למתחילים בדף ה"PowerShell" שנמצא כאן) והינה התוצאה של כלל התוכנות שיכולות לפתוח קיבוץ של זיפ:


ובעצם ניתן לראות את כלל התוכנות שנמצאו, חלקן מתוך חנות האפליקציות של מיקרוסופט MsStore וחלקן מתוך רשימה שמעדכנת הקהילה (לכן תקחו בחשבון שההתקנה היא בדרך כלל על אחריותכם, לדעתי האישית, אני לא חושב שמיקרוסופט תאפשר שיהיה קוד זדוני שיותקן דרך משהו שהיא מפרסמת), מה הבעיה ברשימה הזאת? זה שיש המון דברים ולך תדע עכשיו את מי כדי לנו להתקין, אבל נגיד שאנחנו מכירים את 7zip ואנחנו רוצים להתקין אותו, אז בעצם צריך לצמצם את הרשימה ולאפשר לנו ולבקש להציג לנו רק את 7zip, ובעצם נבצע את זה עם הפקודה הכי הגיונית שיש winget search 7zip ואז בעצם הרשימה תצטמצם:




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

Show - אז בשביל לקבל מידע אודות החבילה ולראות מאיפה בעצם היא הגיע למאגר התוכנות נריץ את הפקודה 
הבאה: winget show 7zip.7zip -למה דווקא בצורה הזאת? כי בדיוק בצורה הזאת היא כתובה בעמודה "Id" שזאת בעצם "תעודת זהות" של החבילה בשביל שהמערכת תדע להבדיל בינהן וגם אנחנו, אז בעצם לאחר שנריץ את הפקודה, נקבל מידע אודות החבילה הזאת:


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


Install - אז בעצם Install מאפשרת לבצע התקנה גם שקטה וגם "רגילה" (התקנה שקטה היא התקנה בלי חלונות קופצים ובלי אפשרות ללחוץ "הבא" או הסכמה או אי הסכמה להתקנה ובעצם הכל יותקן בצורה אוט'), בשביל לבצע התקנה בצורה הזאת נריץ את הפקודה winget install 7zip.7zip --silent ובעצם תוך שניות, הקובץ ירד למחשב שלנו, ולאחר מכן גם יותקן:

ישנן תוכנות שבכל מקרה יותקנו בצורה שקטה ויש כאלו שיראו לכם ממשק משתמש בסיסי, להלן רשימה של תוכנות שאני משתמש להתקנה אצל חלק מהמשתמשים שלי:

התקנה שקטה של ZOOM:

winget install -h --silent Zoom.Zoom

התקנה שקטה של אקרובט רידר:

winget install -h --id XPDP273C0XHQH2

התקנה שקטה של Advanced System Care (אני אוהב את התוכנה הזאת, היא מבצעת נקיון מעולה למחשב, מאחר ויש שם פרסומות, חלק מהאנטיוירוסים יכולים לחשוב שמדובר בווירוס, אך מנסיון רב שנים עם התוכנה הזאת, היא לא מכניסה וירוסים, וניתן להסיר אותה ללא בעיה בתום השימוש):

winget install IObit.AdvancedSystemCare

Upgrade - במידה ואני רוצה לבצע עדכון לתוכנה מסויימת ניתן לרשום את הפקודה : winget upgrade 7zip.7zip, במידה ואני לא יודע את מה אני צריך לעדכן ואני רוצה לבדוק אילו תוכנות במחשב צריך לעדכן,
ניתן לרושם את הפקודה : winget upgrade --all


ולאחר מכן הכל ברור - להלהן רשימה של כלל התכונות שצריך לעדכן במחשב, במידה ונרצה לעדכן תוכנה ספציפית במקרה הזה נרצה לעדכן את YandexDisk (תוכנת אחסון ענן חינמית של חברת Yandex הרוסית)
נרשום את הפקודה: winget upgrade Yandex.Disk:


לאחר כמה שניות, התוכנה כבר תהיה מעודכנת לגירסה האחרונה.

Uninstall - במידה ונרצה להסיר איזו תוכנה - הפקודה גם כן מאוד ברורה winget uninstall 7zip.7zip גם כן, ההסרה מתבצעת על פי "תעודת הזהות" של התוכנה.

List - משתמשת לבדיקת התוכנות שמותקנות אצלכם במחשב - במהלך כתיבת שורות אלו, החלטתי לבדוק כיצד הפלט של הפקודה הזאת יוצג גם בחלון של PowerShell וגם בחלון של CMD, ובעצם גיליתי את אחד ההבדלים, ה CMD לא הכי טוב בכל הנושא של "עברית" ובעצם אני אציג לכם את שתי סוגי הפלט שקיבלתי - ראשית - שימוש בפקודה, הפקודה שנריץ בשביל לקבל את רשימת התוכנות המותקנות - winget list:

פלט ראשון - PowerShell:

(שימו לב בבקשה לשורה השניה מלמעלה שמוצגת בצורה ברורה "בדיקת תקינות המחשב").

להלן פלט מתוך CMD:


(את אותו הטקסט נוכל לראות בכתב מראה מאחר ו CMD לא יודע להציג עברית בצורה תקינה)

לכן גם במקרה הזה נעדיף להשתמש ב PowerShell.

Export - נגיד ואני רוצה לבצע יצוא לרשימה של האפליקציות המותקנות, זה כמעט אפשרי, למה כמעט? כי בצורה הזאת, ניתן ליצא רק אפליקציות שניתן להתקין עם Winget או מתוך חנות האפליקציות של מיקרוסופט, לדוגמא תוכנה בשם Camtasia אי אפשר להתקין עם WinGet, לכן היא אומנם תוצג ברשימה של האפליקציות המותקונת, אך היא לא תוצג כאשר נבצע את היצוא, לכן שימו לב, במידה ולא תמצאו אפליקציה כזאת או אחרת, זה בסדר, כנראה אין אפשרות להתקין אותה דרך מתקין החבילות של מיקרוסופט.
בשביל לבצע את היצוא אני אשתמש בפקודה: winget export -o c:\app.txt - בפקודה הזאת הקובץ שתיצרו,
יופיע בכונן :C, בשביל שהוא יופיע אצלכם על שולחן העבודה (או בעצם אצל כל מחשב) נשתמש בפקודה הבאה:
winget export -o %USERPROFILE%\Desktop\apps.txt (ניתן לעשות העתק הדבק לתוך ה PowerShell).

Import - במידה ותרצו לבצע יבוא במחשב אחר של אותן האפליקציות, שביצעתם יצוא עבורן (שוב, שימו לב, ניתן ליצא ולייבא רק אפליקציות שיש בחנות האפקליציות של מיקרוסופט או WinGet), בצורה הזאת בעצם ניתן לבצע התקנה אוט' לגמרי של האפליקציות מהפקודה הקודמת, ניתן פשוט להריץ את הפקודה על המחשב החדש והכל יותקן אוט', לצורך כך נרשום את הפקודה וניתן את הנתיב שבו נמצא הקובץ שנוצר לנו בעקבות התהליך הקודם:
winget import -i %USERPROFILE%\Desktop\apps.txt

מקווה שנהנתם, כמו תמיד - יותר מאוחר יתווסף סרטון יוטיוב.

המייל שלי לכל שאלה: levl@leidertech.co.il

10 תגובות:

  1. וואוו ההסבר שלך מפורט ומדהים!! תודה רבה!💚💚

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

    יש לי כמה תוכנות (למשל 7ZIP בגרסה 19.0.1) והוא אומר שזו הגרסה שיש לי, אבל יצאה גירסה חדשה (אותו מספר בדיוק)

    וגם לאחר התקנה, כשאני עושה UPGRADE, אני מקבל אותו דבר.

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

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

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

      מחק
    2. אתה חושב על זה בתור יוזר אבל לא בתור מנהל רשת / סיסטם אדמין.

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

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

      מחק
    3. אנונימי 7 :
      לדעתי לא ניהלת אף פעם 500-600 תחנות או אפילו 20 תחנות, לכן אתה עונה בצורה הזאת, ברגע שאתה מנהל רשת ומנהל מאות ואלפים של מחשבים, אתה לא יכול להגיד לכולם להכנס לאתר מסוים ולהוריד את התוכנה, מעבר לכך, אתה יכול לסמוך על 20 איש שיתקינו את מה שאתה צריך ברגע שאתה צריך? אני בספק מאוד, לכן לנו בתור מנהלי רשת, יש אפשרות לבצע "ניהול" ולהחליט איך אנחנו רוצים לבצע התקנות ובאיזו תדירות ובאיזו שעה בשביל לדאוג להמשכיות עסקית, כי בסופו של דבר בשביל זה אנחנו שם, לדאוג שהכל יעבוד כשורה, אנשים מתחלפים, מחשבים מתקלקלים, אני מעדיף שאנשים יתחלפו ומחשבים יעבדו.

      אנונימי 8 ו 9 מסכים איתכם מאוד !

      מחק
  4. תודה רבה, השכלתי ת מאוד שימושי --- LIKE

    השבמחק

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

תודה :)