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

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

כאן נדרשת התערבות צד שרת ומספר הגדרות נוספות ברמת השרת לשינוי המדיניות על התאריך.
להלן הסיבות האפשריות להופעת ההודעה:
- ניהול על ידי ארגון או אדמין: אם המחשב שייך לארגון (כמו חברה, אוניברסיטה או מוסד אחר), הוא מחובר לדומיין ומנוהל באמצעות מערכת ניהול כמו Active Directory. במצב כזה, הארגון מגדיר ונועל שינויים בהגדרות מסוימות, כולל זמן ותאריך.
- מדיניות אבטחה מוגדרת: בארגון אנחנו מציבים הגבלות על הגדרות זמן ותאריך כדי למנוע בעיות סנכרון עם שרתים או אפליקציות קריטיות, במיוחד באזורים או חברות שבהם האבטחה היא בראש סדר העדיפויות.
- כלי ניהול של Microsoft או אחרים: תוכנות לניהול מחשבים מרחוק, כמו Intune, SCCM או GPO, יכולות להגביל גישה להגדרות מסוימות של המערכת.
- שאריות של ניהול קודם: ייתכן שהמחשב היה בעבר חלק מארגון או מנוהל על ידי דומיין, ומדיניות מסוימת עדיין קיימת במערכת, גם אם המחשב כבר לא מחובר לארגון.
- תוכנות אבטחה חיצוניות: לעיתים, תוכנות אבטחה או ניהול צד שלישי (כגון SentinelOne) מגדירות מגבלות תאריך שמובילות להופעת הודעה זו.
איך לטפל?
בדיקת מדיניות קבוצתית (Group Policy):
- פתח את תפריט ההפעלה (Windows + R), הקלד
gpedit.mscולחץ Enter. - נווט לנתיב:
- בדוק אם יש הגדרות מנוהלות בנוגע לזמן ותאריך.
בדיקת ערכי רג'יסטרי:
- פתח את תפריט ההפעלה (Windows + R), הקלד
regeditולחץ Enter. - נווט לנתיב:
- בדוק אם קיימות תיקיות בשם
TimeאוSystem. - אם הן קיימות, בדוק אם יש ערכים שמגבילים שינויים. למשל:
- ערך בשם
DisableClockSet– אם קיים לחץ קליק ימני ובחר Delete. - ערך בשם
RealTimeIsUniversal. - ערך בשם NtpServer – עדכן את הנתון הרצוי (לדוגמה, שנה את כתובת שרת הזמן).
הפעלת המחשב מחדש:
לאחר ביצוע השינויים, סגור את עורך הרישום והפעל מחדש את המחשב כדי להחיל את השינויים.
בדיקת סינכרון עם שרת זמן:
- לחץ על Win+X, ואז על הגדרות (Settings) > זמן ושפה > תאריך ושעה
- בדוק אם המחשב מוגדר לסנכרון עם שרת זמן (לדוגמה: time.windows.com).
הסרת הגבלות (אם המחשב פרטי):
- אם מדובר במחשב פרטי, ניתן לנסות להסיר מדיניות קיימת על ידי מחיקת ערכי רג'יסטרי רלוונטיים או שימוש בפקודה
gpupdate /force.
אם אינך מוצא ערכים בתיקיות שהוזכרו, ייתכן שההגדרות מגיעות ממקום אחר (כמו GPO). במקרה כזה, ייתכן שיידרש שימוש בכלים מתקדמים, כמו gpedit.msc או פקודות PowerShell. בצע לפי הפעולות הבאות:
שינוי ברמת השרת
יש לגשת אל ה-GPO Management בשרת שלנו כמפורט כאן:

בחלון שנפתח יש לנווט אל:
ושם להקליק פעמיים על Change the system time:

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

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

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

ביטול אפשרות של סנכרון תאריך אוטומטי
כדי לבטל אפשרות של סנכרון אוטומטי יש לגשת אל Regedit ולנווט אל:
ביצוע 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
}
הסבר על הסקריפט
- שינוי הגדרות רג'יסטרי:
- הערך
Typeמגדיר את סוג סנכרון הזמן:"NTP": סנכרון מול שרת NTP."NoSync": ביטול סנכרון אוטומטי.
- הערך
- עצירת שירות הזמן:
- שירות הזמן (
w32time) נעצר כדי למנוע עדכוני סנכרון עתידיים.
- שירות הזמן (
- הסרת הגדרות מדיניות GPO:
- אם יש ערכים תחת הנתיב
HKLM:\SOFTWARE\Policies\Microsoft\W32Time, הם יוסרו.
- אם יש ערכים תחת הנתיב
- בדיקות הרשאות:
- הסקריפט בודק אם הוא מופעל עם הרשאות מנהל מערכת, מאחר שללא הרשאות מתאימות, השינויים לא יבוצעו.
הרצה בסביבה מנוהלת
במידה וה-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
מה הסקריפט עושה?
- בדיקת מדיניות רג'יסטרי:
- קורא את התיקיה
HKLM:\SOFTWARE\Policies\Microsoft\W32Time(אם קיימת), ומציג ערכים רלוונטיים שמוגדרים על ידי GPO. - במידה והנתיב קיים, מדובר בהשפעת מדיניות קבוצתית.
- קורא את התיקיה
- בדיקת מצב הסנכרון:
- קורא את הערך
Typeברישום (בנתיבHKLM:\SYSTEM\CurrentControlSet\Services\w32time\Parameters). - הערך
NTPמצביע על סנכרון אוטומטי, בעודNoSyncמצביע על סנכרון כבוי.
- קורא את הערך
- בדיקת יישום GPO בפועל:
- משתמש בפקודת
gpresult(חלק מובנה במערכת ההפעלה) כדי לאסוף מידע מפורט על המדיניות שמיושמת. - מזהה אם שירות הזמן (
W32Time) מושפע מהגדרות קבוצתיות.
- משתמש בפקודת
איך לקרוא את הסטטוס
- אם הסקריפט מזהה תיקיות רג'יסטרי או יישום של GPO שמנהלות את שירות הזמן, הוא יידע אותך שהמדיניות עדיין פעילה.
- אם אין מדיניות פעילה, המחשב יפעל לפי ההגדרות המקומיות שלך.
תודה על ההסבר! הגדרת תאריך זמני או קבוע במחשב יכולה להיות שימושית מאוד, במיוחד בבדיקות תוכנה וסינכרון מערכות. האם יש דרך לבצע זאת באופן אוטומטי באמצעות סקריפט או פקודה מסוימת? אשמח לפירוט נוסף על כך!