Group Policy

הגדרת תאריך זמני/קבוע במחשב

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

ברמת המשתמש

ראשית יש לבדוק שיש אפשרות הגדרה של תאריך ושעה במחשב. בד"כ במחשב המחובר לדומיין יש חסימה היות והוא מסונכרן באופן תמידי מול השרת (זמן סנכרון 5 דקות).

ניגשים לאפשרות הזו דרך קליק ימני על התאריך והשעה בשורת המשימות ואז על "שינוי תאריך/שעה":

מערכת הפעלה 10: קליק ימני על התאריך בשורת המשימות -> שינוי תאריך/שעה

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

תאריך
*חלק מההגדרות האלה מוסתרות או מנוהלות על-ידי הארגון שלך.

כאן נדרשת התערבות צד שרת ומספר הגדרות נוספות ברמת השרת לשינוי המדיניות על התאריך.

ההודעה "חלק מההגדרות האלה מוסתרות או מנוהלות על-ידי הארגון שלך" מופיעה במחשבים שבהם קיימות הגבלות שמופעלות באמצעות מדיניות קבוצתית (Group Policy) או הגדרות ניהול אחרות, בדרך כלל על ידי ארגון, חברה, או מוסד שמנהל את המחשב.

להלן הסיבות האפשריות להופעת ההודעה:

  1. ניהול על ידי ארגון או אדמין: אם המחשב שייך לארגון (כמו חברה, אוניברסיטה או מוסד אחר), הוא מחובר לדומיין ומנוהל באמצעות מערכת ניהול כמו Active Directory. במצב כזה, הארגון מגדיר ונועל שינויים בהגדרות מסוימות, כולל זמן ותאריך.
  2. מדיניות אבטחה מוגדרת: בארגון אנחנו מציבים הגבלות על הגדרות זמן ותאריך כדי למנוע בעיות סנכרון עם שרתים או אפליקציות קריטיות, במיוחד באזורים או חברות שבהם האבטחה היא בראש סדר העדיפויות.
  3. כלי ניהול של Microsoft או אחרים: תוכנות לניהול מחשבים מרחוק, כמו Intune, SCCM או GPO, יכולות להגביל גישה להגדרות מסוימות של המערכת.
  4. שאריות של ניהול קודם: ייתכן שהמחשב היה בעבר חלק מארגון או מנוהל על ידי דומיין, ומדיניות מסוימת עדיין קיימת במערכת, גם אם המחשב כבר לא מחובר לארגון.
  5. תוכנות אבטחה חיצוניות: לעיתים, תוכנות אבטחה או ניהול צד שלישי (כגון SentinelOne) מגדירות מגבלות תאריך שמובילות להופעת הודעה זו.

איך לטפל?

שימו לב: שינוי לא נכון ברישום עלול לגרום לבעיות במערכת. מומלץ לגבות את הרישום לפני ביצוע שינויים.

בדיקת מדיניות קבוצתית (Group Policy):

  • פתח את תפריט ההפעלה (Windows + R), הקלד gpedit.msc ולחץ Enter.
  • נווט לנתיב:
Computer Configuration > Administrative Templates > System > Time and Date Settings
  • בדוק אם יש הגדרות מנוהלות בנוגע לזמן ותאריך.

בדיקת ערכי רג'יסטרי:

  • פתח את תפריט ההפעלה (Windows + R), הקלד regedit ולחץ Enter.
  • נווט לנתיב:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows
  • בדוק אם קיימות תיקיות בשם Time או System.
  • אם הן קיימות, בדוק אם יש ערכים שמגבילים שינויים. למשל:
  • ערך בשם DisableClockSet– אם קיים לחץ קליק ימני ובחר Delete.
  • ערך בשם RealTimeIsUniversal.
  • ערך בשם NtpServer – עדכן את הנתון הרצוי (לדוגמה, שנה את כתובת שרת הזמן).

הפעלת המחשב מחדש:

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

בדיקת סינכרון עם שרת זמן:

  • לחץ על Win+X, ואז על הגדרות (Settings) > זמן ושפה > תאריך ושעה
  • בדוק אם המחשב מוגדר לסנכרון עם שרת זמן (לדוגמה: time.windows.com).

הסרת הגבלות (אם המחשב פרטי):

  • אם מדובר במחשב פרטי, ניתן לנסות להסיר מדיניות קיימת על ידי מחיקת ערכי רג'יסטרי רלוונטיים או שימוש בפקודה gpupdate /force.

אם אינך מוצא ערכים בתיקיות שהוזכרו, ייתכן שההגדרות מגיעות ממקום אחר (כמו GPO). במקרה כזה, ייתכן שיידרש שימוש בכלים מתקדמים, כמו gpedit.msc או פקודות PowerShell. בצע לפי הפעולות הבאות:

שינוי ברמת השרת

יש לגשת אל ה-GPO Management בשרת שלנו כמפורט כאן:

Group Policy Management

בחלון שנפתח יש לנווט אל:

Computer Configuration – > Windows Settings -> Security Settings -> Local Policies -> User Rights Assignment

ושם להקליק פעמיים על Change the system time:

בחלון שנפתח יש לסמן את ה-v וללחוץ על ..Add User or Group

הוסיפו משתמשים ו/או קבוצות ולחצו על OK

בחלון הבא לחצו על OK

ביטול אפשרות של סנכרון תאריך אוטומטי

כדי לבטל אפשרות של סנכרון אוטומטי יש לגשת אל Regedit ולנווט אל:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

ביצוע Force ל-GPO

לחצו בשרת על מקשי ה Windows+R וכתבו cmd ואנטר. בחלון שיפתח הכניסו את הפקודה:

gpupdate /force

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

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

ביטול סנכרון אוטומטי באמצעות פקודת Powershell

כדי לבטל את אפשרות הסנכרון האוטומטי של הזמן במחשב מקומי, גם אם הוא מנוהל על ידי מדיניות קבוצתית (GPO), ניתן להשתמש ב-PowerShell כדי לשנות את הגדרות הרג'יסטרי הרלוונטיות. יש לשים לב שכאשר מחשב מנוהל על ידי GPO, המדיניות הקבוצתית עשויה לדרוס שינויים ידניים עם רענון המדיניות (פקודה gpupdate).

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

# ודא שהסקריפט רץ עם הרשאות מנהל מערכת
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
    Write-Host "יש להפעיל את הסקריפט עם הרשאות מנהל מערכת." -ForegroundColor Red
    exit
}

# ביטול סנכרון זמן אוטומטי על ידי שינוי ערכי רג'יסטרי
try {
    # נתיב הרישום של שירות הזמן
    $regPath = "HKLM:\SYSTEM\CurrentControlSet\Services\w32time\Parameters"
    
    # שינוי הערך Type כדי למנוע סנכרון אוטומטי
    Set-ItemProperty -Path $regPath -Name "Type" -Value "NoSync"

    Write-Host "הסנכרון האוטומטי של הזמן בוטל בהצלחה." -ForegroundColor Green
} catch {
    Write-Host "אירעה שגיאה במהלך השינוי: $_" -ForegroundColor Red
}

# עצירת שירות הזמן
try {
    Stop-Service -Name w32time -Force
    Write-Host "שירות הזמן נעצר בהצלחה." -ForegroundColor Green
} catch {
    Write-Host "אירעה שגיאה בעת עצירת השירות: $_" -ForegroundColor Red
}

# הסרת הגדרות זמן קיימות במדיניות GPO
try {
    $policyPath = "HKLM:\SOFTWARE\Policies\Microsoft\W32Time"
    if (Test-Path $policyPath) {
        Remove-Item -Path $policyPath -Recurse -Force
        Write-Host "הגדרות מדיניות הזמן הוסרו." -ForegroundColor Green
    } else {
        Write-Host "לא נמצאו הגדרות זמן במדיניות." -ForegroundColor Yellow
    }
} catch {
    Write-Host "אירעה שגיאה בעת הסרת המדיניות: $_" -ForegroundColor Red
}

הסבר על הסקריפט

  1. שינוי הגדרות רג'יסטרי:
    • הערך Type מגדיר את סוג סנכרון הזמן:
      • "NTP": סנכרון מול שרת NTP.
      • "NoSync": ביטול סנכרון אוטומטי.
  2. עצירת שירות הזמן:
    • שירות הזמן (w32time) נעצר כדי למנוע עדכוני סנכרון עתידיים.
  3. הסרת הגדרות מדיניות GPO:
    • אם יש ערכים תחת הנתיב HKLM:\SOFTWARE\Policies\Microsoft\W32Time, הם יוסרו.
  4. בדיקות הרשאות:
    • הסקריפט בודק אם הוא מופעל עם הרשאות מנהל מערכת, מאחר שללא הרשאות מתאימות, השינויים לא יבוצעו.

הרצה בסביבה מנוהלת

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

בדיקת סטטוס באמצעות Powershell אם המדיניות עדיין מופעלת

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

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

סקריפט לבדיקה האם GPO משפיעה על הגדרות הזמן

# בדיקה האם מדיניות זמן מוגדרת
function Check-TimePolicy {
    # נתיב הרישום של מדיניות זמן תחת GPO
    $policyPath = "HKLM:\SOFTWARE\Policies\Microsoft\W32Time"

    # בדוק אם הנתיב קיים
    if (Test-Path $policyPath) {
        Write-Host "מדיניות GPO שמנהלת זמן מופעלת." -ForegroundColor Yellow
        Get-ItemProperty -Path $policyPath | Format-List
    } else {
        Write-Host "לא נמצאה מדיניות זמן תחת GPO." -ForegroundColor Green
    }
}

# בדיקה האם שירות הזמן מסונכרן
function Check-TimeSyncStatus {
    try {
        # בדיקת סוג הסנכרון שמוגדר
        $regPath = "HKLM:\SYSTEM\CurrentControlSet\Services\w32time\Parameters"
        $syncType = Get-ItemProperty -Path $regPath -Name "Type" -ErrorAction Stop

        # בדיקת הערך של Type
        switch ($syncType.Type) {
            "NTP" { Write-Host "הסנכרון מופעל (NTP)." -ForegroundColor Yellow }
            "NoSync" { Write-Host "הסנכרון כבוי (NoSync)." -ForegroundColor Green }
            default { Write-Host "סוג סנכרון לא ידוע: $($syncType.Type)" -ForegroundColor Red }
        }
    } catch {
        Write-Host "לא ניתן לבדוק את סטטוס הסנכרון: $_" -ForegroundColor Red
    }
}

# בדיקת עדיפות של מדיניות GPO
function Check-GPOStatus {
    # בדיקת יישום מדיניות בעזרת פקודה GPResult
    try {
        Write-Host "מפיק מידע על מדיניות קבוצתית (GPO)..."
        $gpoResult = gpresult /scope computer /v
        if ($gpoResult -match "W32Time") {
            Write-Host "נמצאו מדיניות GPO שמגדירות את שירות הזמן:" -ForegroundColor Yellow
            $gpoResult -match "W32Time" | Out-String
        } else {
            Write-Host "לא נמצאה השפעת GPO על שירות הזמן." -ForegroundColor Green
        }
    } catch {
        Write-Host "שגיאה בבדיקת מדיניות GPO: $_" -ForegroundColor Red
    }
}

# הרצת הפונקציות
Check-TimePolicy
Check-TimeSyncStatus
Check-GPOStatus

מה הסקריפט עושה?

  1. בדיקת מדיניות רג'יסטרי:
    • קורא את התיקיה HKLM:\SOFTWARE\Policies\Microsoft\W32Time (אם קיימת), ומציג ערכים רלוונטיים שמוגדרים על ידי GPO.
    • במידה והנתיב קיים, מדובר בהשפעת מדיניות קבוצתית.
  2. בדיקת מצב הסנכרון:
    • קורא את הערך Type ברישום (בנתיב HKLM:\SYSTEM\CurrentControlSet\Services\w32time\Parameters).
    • הערך NTP מצביע על סנכרון אוטומטי, בעוד NoSync מצביע על סנכרון כבוי.
  3. בדיקת יישום GPO בפועל:
    • משתמש בפקודת gpresult (חלק מובנה במערכת ההפעלה) כדי לאסוף מידע מפורט על המדיניות שמיושמת.
    • מזהה אם שירות הזמן (W32Time) מושפע מהגדרות קבוצתיות.

איך לקרוא את הסטטוס

  • אם הסקריפט מזהה תיקיות רג'יסטרי או יישום של GPO שמנהלות את שירות הזמן, הוא יידע אותך שהמדיניות עדיין פעילה.
  • אם אין מדיניות פעילה, המחשב יפעל לפי ההגדרות המקומיות שלך.
אם GPO מנהלת את המחשב, כל שינוי ידני ברג'יסטרי ייתכן ויידרס עם רענון המדיניות (gpupdate /force).

Rami

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

תגובה אחת

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

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

Back to top button