PowerShellשרתים וטרמינלים

מניעת עדכונים אוטומטיים מלרוץ בשרת

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

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

אז שוב קמתם לבוקר בו לאחר המערכת נתקעת/מתרסקת או שהמדפסות שלכם נעלמו למשתמשים לפתע פתאום (עדכון KB5000822 החביב)? אל דאגה אתם לא לבד.

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

כעת, כדי למנוע מעדכונים מלרוץ בשרת עד תאריך מסוים, יש לפתוח cmd כאדמין להעתיק ולהדביק את השורה הבאה:

REG ADD HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings /t REG_SZ /v PauseUpdatesExpiryTime /d 2021-04-15T00:00:00Z /f

אנטר והעדכונים יפסיקו מלרוץ עד התאריך 2021-04-15 (או עד לתאריך שתבחרו לשנות בקוד)

הסרת עדכונים סוררים

באופן כללי הסרת עדכונים מתבצעת מכאן, אך דרך יותר מהירה היא כמובן הקוד הבא (יש להריץ כאדמין בcmd):

wusa /uninstall /kb:5000822 /quiet /norestart

wusa /uninstall /KB:5000802 /quiet /norestart

wusa /uninstall /KB:5000808 /quiet /norestart

wusa /uninstall /kb:5000809 /quiet /norestart

להורדת הקוד יש ללחוץ כאן

לקיצור דרך (או במקרה והעתקה או הדבקה לא מאופשרת בשרת) ניתן להיכנס אל חלונית Run כאדמין ולהקליד cmd /k לפני כל פקודה. למשל:

מה עושים במקרה של עדכון עקשן שמסרב להיות מוסר

כשניגשים להסרת עדכונים צריך לזכור שחלק מהעדכונים הם חיוניים עבור Windows ומשולבים עמוק במערכת.
“חבילות עדכונים” כגון Cumulative הן הכרחיות על מנת להתקין עדכונים עתידיים. בהגדרה עדכוני installer הם “בלתי ניתנים להסרה”.

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

בדיקה ושליטה בעדכון אם הוא בלתי ניתן להסרה או מחיק מתבצעת בתוך קבצי mum (המילה mum מייצגת את Microsoft Update Manifest) שנמצאת בתוך קובץ msu.
ניתן למצוא את קבצי ה-mum (לאחר התקנת עדכונים) בנתיב c:\Windows\servicing\Packages

c:\Windows\servicing\Packages

אז מה מסתתר בתוך קובץ ה-mum?

קובץ mum הוא למעשה קובץ XML המכיל מידע חשוב אודות העדכון. מידע כגון:

  • מספר KB
  • סוג עדכון
  • מתי נוצר
  • דרישות שפה
  • הפעלה מחדש לאחר התקנה
  • האם ניתן להסרה

כך נראה מבפנים קובץ mum (זוהי דוגמה מקוצרת של הקובץ המלא, אותו ניתן לראות כאן) שהגיע מעדכון בשרת 2019:

<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0" description="Fix for KB4601345" displayName="default" company="Microsoft Corporation" copyright="Microsoft Corporation" supportInformation="https://support.microsoft.com/help/4601345" creationTimeStamp="2021-02-05T12:42:15Z" lastUpdateTimeStamp="2021-02-05T12:42:15Z">
  <assemblyIdentity name="Package_1_for_KB4601345" version="10.0.1.7" language="neutral" processorArchitecture="amd64" publicKeyToken="61bdh456dwas645" />
  <package identifier="KB4601345" releaseType="Security Update" restart="possible" permanence="permanent">
    <parent buildCompare="EQ" integrate="separate" disposition="detect">
      <parent buildCompare="EQ" integrate="separate" disposition="detect">

כאן כאמור ניתן לראות את הפרטים הבאים:

  • מספר KB- מופיע ליד הערך package identifier=”KB4601345″
  • סוג עדכון- releaseType=”Security Update”
  • מתי נוצר – creationTimeStamp=”2021-02-05T12:42:15Z”
  • דרישות שפה- encoding=”utf-8″
  • הפעלה מחדש לאחר התקנה- restart=”possible”
  • האם ניתן להסרה – permanence=”permanent”

אז איך הופכים חבילה בלתי ניתנת להסרה לאחת שכן?

  1. נכנסים אל הנתיב c:\Windows\servicing\Packages
  2. מחפשים את ה-KB הרצוי. שימו לב: לוקח זמן למצוא את הקובץ.
  3. פותחים את קובץ ה-mum באמצעות notepad או notepad++
  4. משנים בתוך הקובץ את הערך permanence=”permanent” אל permanence=”removable”
  5. שומרים את הקובץ

יש כאן רק בעיה (בתוך שלל הבעיות) אחת קטנה:
רק למשתמש בעל הרשאות TrustedInstaller יש את האפשרות להיכנס ולערוך קבצי mum.
ניתן לפתור זאת בקלות על ידי הרצת notepad.exe כבעל הרשאות TrustedInstaller

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

להסרת העדכון יש לגשת כאמור לכאן, או לחלופין להריץ את הקוד הבא ב-cmd כמנהל:

wusa /uninstall /kb:4601345 /quiet /norestart

כמה הערות לסיום:

  1. הקוד בשורה דלעיל הוא לפי הדוגמה שלנו במאמר- עדכון מספר KB4601345. כמובן, יש לשנות לפי מספר ה-KB הנכון.
  2. השיטה צריכה לעבוד בכל מערכות ההפעלה החל מ-Windows 7 עד 10 כולל. וכמובן במערכות שרתים 2012R2 עד 2019.
  3. לאחר מכן יש לבדוק אם קיימים קבצי מערכת פגומים במערכת על ידי הרצת sfc /scannow כמנהל ב-cmd

Rami

יזם, איש סיסטם, מתכנת בחסד, ונושם אינטרנט.

מאמרים קשורים

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button