משככי כאבים למעברי שעון

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

למרות שבמערכות ההפעלה החדשות יותר מיקרוסופט פרסמה עדכונים שאמורים לטפל בבעייה, אנשי הסיסטם עדיין צריכים להתמודד בכל שנה (פעמיים בשנה!) עם הרגע בו הם צריכים להתקין את עדכוני התוכנה לשעון קיץ/חורף על לפחות חלק ממחשבי הארגון ויישומי השרת השונים. כמידי חורף, אנו נאלצים להתמודד עם שפעת ה DST שמכה בנו במלוא כוחה וגורמת לנו לכאבי ראש רבים. במיוחד, מכיוון שהיא פוגעת בלקוחות ה-VIP  של הארגון, וכשהם צועקים, כולנו יודעים שזה כואב.

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

ההתקנה היא רק השלב הראשון שכן אנו צריכים גם לוודא שהיא עברה בהצלחה. לצורך, כתבתי ADM שאוכף את הגדרות ה-DST על כל המחשבים בארגון ולסמן את ה-√ להפעלת ה-Daylight Saving.

הגדרת GPO

את קובץ ה- ADM יש לשמור בספרית INF של מערכת ההפעלה (WINDIR%\Inf%) ולאחר מכן לצרפו ל-GPO

בחירת קובץ ה-ADM. לחץ להגדלה

מאחר וה-Policy הנ”ל הינו שינוי Registry ולא הגדרת GPO אמיתית (אינה הגדרה שמאוחסנת ב- Policies Key) יש צורך לשנות את הגדרות התצוגה של ה-GPO

יש להסיר את ה-√ מ- (“Only show policy settings that can be fully managed”)

עכשיו ניתן לראות בחלון הימני את גם את הגדרת ה-DST

לחץ להגדלה

ההגדרה ה”כחולה” הינה הגדרת Policy מלאה (רגילה) ולכן היא מסומנת בכחול. הגדרה זו מאפשרת לבטל את הצגת האפשרות למשתמש להזיז את פגישותיו (באאוטלוק) באופן עצמאי. ההגדרה ה”אדומה” הינה הגדרת “Registry” ולכן היא מסומנת באדום (ניתן לראותה רק לאחר הסרת ה-√ בשלב הקודם). הגדרה זו מאפשרת ומבטלת את ה-DST.

אם ברצונכם להכיל באופן מיידי את ה-Policy על כל הארגון, כדאי לכם לבחון את התוסף הקטן (חינמי) מבית SpecOps . זהו תוסף לממשק ה-AD שמאפשר לבצע GPUpdate על OU שלם (מבוסס PowerShell).

הפצה

למי שאין מנגנון הפצה, כגון SCCM, ניתן להפיץ את העדכון באמצעות PsExec. על-מנת להקל על התהליך בניתי Self-Extract ,שמריץ סקריפט לבדיקת סוג מערכת ההפעלה ומפיץ את העדכון המתאים לה.

DSTInstall.exe – קובץ זה מכיל סקריפט אשר בודק את סוג מערכת ההפעלה, Service Pack וארכיטקטורה של מחשב היעד, לפי תוצאות בדיקה זו, מותקן העדכון המתאים. חבילה זו מתאימה למערכות ההפעלה הבאות :

  • Windows 2000 – עדכון Registry, אין Patch.
  • Windows XP SP3
  • Windows XP SP 2 – עדכון של דצמבר 2009 (העדכון החדש לא תומך ב-SP2)
  • x86/x64 – Windows 2003
  • x86/x64 – Windows 2008
  • Windows2008 R2

ב- Windows 2000 ,Windows XP ו Windows 2003 Serverבתום ההתקנה, יופיע ה-Application Event הבא :

(במערכות הפעלה Windows 7 / Windows 2008 ומעלה כבר אין צורך להריץ Registry Update Refresh)

במערכות ההפעלה Windows XP ומעלה מתווסף ה-Application Event הבא :

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

psexec.exe -s -i -c –f path\DSTInstall.exe @Computers.txt

בסוף שורת הפקודה ניתן לציין נתיב לקובץ המכיל רשימה של מחשבים להם יופץ העדכון. ניתן להשתמש ב- RunHiddenConsole.exe על-מנת להחביא את ה-Command Console

RunHiddenConsole.exe psexec.exe -s -i -c –f path\DSTInstall.exe @ Computers.txt

חשוב לבדוק את המנגנון הנ”ל בסביבת טסט לפני הפעלתו בסביבת הייצור.

“למשועממים” שבינינו ,ניתן לעטוף את הפקודה הנ”ל (להוסיף בדיקות כגון בדיקת PING, בדיקה שהעדכון אכן הותקן וכדומה) בעזרת Powershellו- Windows Forms כדוגמת הממשק הבא (דוגמא בלבד, לא זמין להורדה):

9

בדיקה

באמצעות פקודת Get-Hotfix של Powershell 2 ניתן לבדוק האם העדכון אכן הותקן, מקומית או על מחשב מרוחק. תחילה יש ליצור קובץ המכיל את שמות כל מחשבי הלקוח ולאחר מכן לנתב את הפלט ל- Get-Hotfix

Get-Content D:\Computers.txt | Foreach-Object { Get-Hotfix -Id KB2443685 -ComputerName $_ }

על-מנת לבדוק את ההגדרות עצמן כתבתי פונקציה בשם Get-DSTSettings שבודק את הגדרות ה-DST על כל מחשב ומחשב. בנוסף לבדיקה זו ניתן להוסיף את המתג -Hotfix על-מנת לבדוק האם העדכון הותקן על המחשב הנבדק. דוגמאות לשימוש בפקודה :

הרצת הפקודה לבדיקת המחשב המקומי,Get-DSTSettings

לחץ להגדלה

מספר דוגמאות להרצת הפקודה עבור מספר מחשבים

'Server1','Server5','Server2','Server3 '| Get-DSTSettings | Format-Table –Property *


Get-Content D:\ComputersList.txt | Get-DSTSettings | Format-Table *


Get-DSTSettings - ComputerName Server1, Server2 | FT *

לחץ להגדלה

חשוב לזכור, כי במידה ותריצו את הפקודה עבור מחשבי Windows7,Windows2008 ומעלה התוצאות שיתקבלו יהיו תוצאות עבור 2010 ולא עבור 2011 היות ומערכות אלו פועלות בהתאם לכללי ה- Dynamic DST (רק מינואר יתקבלו התוצאות עבור 2011).

טעינת הפונקציה

ניתן ל”טעון” את הפונקציה לזיכרון במספר דרכים להלן שתיים:

אפשרות ראשונה היא להעתיק את הפונקציה (תוכן הסקריפט המצורף) ולהדביקה לפרופיל המשתמש של PowerShell. מעתה ואילך הפונקציה תהא זמינה בכל הפעלה של PowerShell.

אפשרות נוספת להריץ את ה-Script המצורף בעזרת Dot Source באופן הבא (יש להריץ שורת פקודה זו בכל פעם שפותחים את הקונסול) :

D:\Get-DSTSettings.ps1
הקבצים המצורפים ניתנים להורדה מכאן.

מומלץ בחום , לבצע בדיקות בסביבת טסט לפני שמריצים את הפקודות בסביבת הייצור.

הפוסט פורסם במקור בבלוג PowerWF

הזדמנות אחרונה להצביע, להשפיע, ולזכות ב-Xbox וקינקט

Avatar

דולב הדס

דולב הדס הוא איש צוות סיסטם ומנהל רשת בסביבת מיקרוסופט ברשות שדות התעופה.

הגב

הגב ראשון!

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

wpDiscuz

תגיות לכתבה: