אוטומציה למתקדמים: עדכון תוכנות גורף עם Winget
כלי ה-Winget (Windows Package Manager) המובנה בווינדוס הוא "שובר שוויון" עבור אנשי תמיכה ומנהלי רשתות. במקום להתקין תוכנות צד-שלישי או לעבור תוכנה-תוכנה ולחפש עדכונים, נלמד איך לעדכן את כל המחשב בפקודה אחת שקטה, איך למנוע עדכון של תוכנות רגישות (Pinning), ואיך להפוך את הכל לאוטומטי לחלוטין.
לפני הרצת עדכון גורף על מחשבי משתמשים או שרתים בארגון, מומלץ תמיד לבצע "הצמדה" (Pinning) לתוכנות קריטיות שחייבות להישאר בגרסה ספציפית (למשל סביבת Java ישנה או תוכנות הנהלת חשבונות מסוימות). הסבר מדויק כיצד לעשות זאת נמצא בשלב 3.
שלב 1: בדיקת מצב ומקורות
לפני שמתחילים לעדכן עיוור, נבדוק אילו תוכנות מותקנות על המחשב דורשות עדכון, והאם המערכת מזהה את המקורות כראוי. פתחו PowerShell (כמנהל) והריצו:
* אם זו הפעם הראשונה שאתם מריצים Winget במחשב זה, ייתכן ותתבקשו לאשר את תנאי המקורות (לחצו Y ו-Enter).
שלב 2: הפקודה המרכזית (עדכון שקט וגורף)
זוהי פקודת ה"קסם" שמעדכנת את כל התוכנות ברקע. הפקודה כוללת דגלים (Flags) לאישור אוטומטי של הסכמי רישיון (כדי שהסקריפט לא ייתקע ויחכה לתשובה שלכם) ולטיפול בתוכנות בעייתיות.
--all: סורק ומשדרג את כל התוכנות במחשב שמקורן במאגר של Winget או ב-Microsoft Store.--silent(או-h): מריץ את ההתקנות ברקע מבלי להקפיץ חלונות התקנה מציקים למשתמש.--include-unknown: כופה עדכון גם על תוכנות שגרסתן הנוכחית אינה מזוהה בוודאות על ידי Windows.
שלב 3: החרגת תוכנות ונעילת גרסה (Pinning)
יש לכם תוכנה ספציפית שאסור לה להתעדכן? השתמשו בפקודת ה-Pin כדי "לנעוץ" אותה בגרסה הנוכחית. מהרגע שנעצתם תוכנה, פקודת ה-upgrade --all פשוט תדלג עליה.
שלב 4: הגירת תוכנות למחשב חדש (Export / Import)
מפרמטים את המחשב? קונים מחשב חדש ללקוח? אין צורך להתקין את כל התוכנות מחדש ידנית. תוכלו לייצא את רשימת התוכנות הנוכחית לקובץ JSON קטן, ולהתקין את כולן במכה אחת במחשב היעד.
שלב 5: סקריפט אוטומציה מלא (כולל לוגים)
לאנשי IT שאוהבים סדר: העתיקו את הסקריפט הבא ושמרו אותו כקובץ Update-Apps.ps1. הסקריפט ייצור אוטומטית תיקיית לוגים ב-C, יתעד את כל התוכנות שעודכנו, ויבצע את התהליך באופן שקט לחלוטין.
בונוס: תזמון עדכונים אוטומטי (Task Scheduler)
רוצים שהסקריפט שהכנו בשלב הקודם ירוץ לבד כל יום שישי ב-12 בצהריים, עם הרשאות מנהל מוסתרות? הריצו את הפקודה הבאה פעם אחת ב-PowerShell (כמנהל), והמחשב יישאר מעודכן לנצח:
פתרון תקלות ובעיות נפוצות ב-Winget
| תיאור התקלה (Error) | הפתרון המקצועי |
|---|---|
| "The term 'winget' is not recognized" | המחשב ישן מדי או שהכלי הוסר. פתחו את חנות מיקרוסופט (Microsoft Store), חפשו App Installer, ועדכנו/התקינו אותו. |
| Hash Mismatch Error | קובץ ההתקנה בשרת לא תואם לחתימה (החברה כנראה החליפה את הקובץ בלי לעדכן גרסה). נסו להוסיף --force בסוף פקודת ההתקנה, או המתינו יום-יומיים עד שהמאגר יתעדכן. |
| 0x80070005 (Access Denied) | אין לכם מספיק הרשאות לעדכן את התוכנה. חובה להריץ את ה-PowerShell כ-Administrator. |
| Source Reset (לא מוצא אף תוכנה) | מאגר הנתונים של Winget נתקע במחשב שלכם. פתחו CMD והריצו: winget source reset --forceואחריו: winget source update |
| תקוע על "MSStore Package" | לפעמים Winget מנסה לעדכן אפליקציה של החנות ונתקע. ניתן להורות לו לחפש עדכונים רק מתוכנות קלאסיות על ידי הוספת הדגל: --source winget. |