אחת מהבעיות הנפוצות ביותר שטורפות מנהלי מערכת של Windows היא האמון, המחשבים של Active Directory נראים כאילו נפלו מהדומיין. שגיאת "היחס בין האמון לעמדה העיקרית נכשל" האפלה היא יותר מדי פעמים.
במדריך זה, תלמד כל קסם שנתקלתי בו במהלך יותר מ-20 שנה של ניהול של Active Directory ואיך לאוטומציה זו בעזרת PowerShell.
הודעת שגיאה "היחס בין האמון לעמדה העיקרית נכשל"
כשתחושב על מחשב בדומיין של AD שכבר לא סומך עליו, יש סיכוי שזה בגלל שהסיסמה שיש למחשב המקומי אינה תואמת לסיסמה שמאוחסנת ב-Active Directory.

שתי הסיסמאות חייבות להיות בסנכרון כדי ש-AD יסמוך על מחשב. אם הן לא בסנכרון, תקבל את הודעת השגיאה האפלה "היחס בין האמון לעמדה העיקרית נכשל".
למרבה הצער, לא הייתה אי פעם פתרון יחיד שאני ומנהלי מערכת אחרים מצאנו שעובד 100% מהזמן. זו הסיבה שכתבתי את המדריך הזה.
מדובר במדריך שמיועד להיות נתח אחד לכל דרך לתקן את הבעיה הזו פעם בכלל ולאוטומציה התהליך עם PowerShell.
סיסמאות חשבונות המחשב ב-Active Directory
כאשר מחשב חדש מתווסף ל-Active Directory, יוצרת חשבון מחשב עם סיסמה. הסיסמה הזו תקפה למשך 30 ימים לפי ברירת מחדל. לאחר 30 יום, היא משתנה אוטומטית. אם היא משתנה והסיסמה של הלקוח לא, תקבל את הודעת השגיאה "היחס בין תחנת העבודה לבין מערכת התחום הראשית נכשל".
צפייה במדיניות קיימת
ניתן לצפות במדיניות הכללית של הדומיין על ידי פתיחת תפריט הניהול של Group Policy (GPMC). בתוך ה-GPMC, לחץ על Default Domain Policy, ונווט אל תצורת מחשב –> הגדרות Windows –> הגדרות אבטחה > מדיניות מקומית > אפשרויות אבטחה.
בתוך אפשרויות אבטחה, חפש את המדיניות בשם Domain member: Maximum machine account password age.

על מחשב מצורף ל-AD, פתח את regedit ונווט אל מפתח ה-registry של HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters ומצא את הערך MaximumPasswordAge כפי שמוצג למטה.

בעת שהינך שם, תוכל להשבית את המחשב המקומי משינוי הסיסמה בכלל על ידי הגדרת הערך DisablePasswordChange ל-1.
כאשר חשבון המחשב משתנה, יש לשנות את הסיסמה יחד לכל אחת מהמחשבות – המחשב המקומי וחשבון ה-AD. ה-AD יודעת על הסיסמה הנוכחית והקודמת במקרה שיתרחשו התחזקויות לתקופה קצרה.
כאשר הדברים פועלים באופן תקין, בשימוש בשירות Netlogon של Windows, המחשב מבצע שינוי סיסמה באופן אוטומטי. זה קורה במהלך הפעלה מחדש של המחשב או כאשר יש צורך לאמת את תקיפות אובייקט המחשב ב-AD.
כאשר משתמשים בשירות Netlogon של Windows, המחשב המקומי מבצע רצף שינוי סיסמה. המחשב מתחיל בביצוע שינוי סיסמה בשרת המרכזי של הדומיין. אם השינוי הצליח, המחשב מנסה לשנות את הסיסמה המקומית כך שתתאים למפתח הרישום HKLM\SECURITY\Policy\Secrets<hostname>.ACC.
בדרך כלל, תהליך זה עובד טוב גם אם המחשב כבוי או לא מחובר לרשת למשך יותר מ-30 יום, מכיוון שהמחשב המקומי מבצע שינוי סיסמה.
אך, מתגרשת בעיה כאשר:
- המחשב משנה את חשבון המחשב ב-AD, אך אינו מצליח לשנות את הסיסמה המקומית
- המחשב נטען מחדש ללא ביצוע Sysprep
- המערכת הפעילה מותקנת מחדש ומנסה לאמת עם חשבון המחשב הישן, הפעיל ומאושר ב-AD
- …ועוד?
אם מתרחש אחד מהמקרים הנ"ל, תיתכן הופעת הודעת שגיאה "היחס בין תחנת העבודה למרכז הדומיין הראשי נכשל".
אימות הבעיה
כאשר יש מודעות לקיום הבעיה, איך ניתן לשכפל אותה או לזהות אילו מחשבים סובלים מהבעיה? ניתן לנסות להתחבר באופן אינטראקטיבי לכל מחשב, אך זה אינו יעיל ולא רצוי לקום מהמסך שלי!
לבנות סקריפט שניתן להפעיל גם מקומית וגם מרחוק כדי לקבוע אילו מחשבים בדומיין יש להם את הבעיה ולהדביק את הודעת השגיאה "הקשר האמון בין תחנת העבודה לתחום הראשי נכשל" פעם לתמיד.
למעשה, בגלל שאתה מניח שאימות הדומיין לא עובדת, יהיה עליך לדעת על חשבון משתמש מקומי בקבוצת המנהלים. אני מקווה שאתה יודע את הסיסמה של מנהל המערכת המקומי שלך!
nltest (כלי שורת פקודה)
nltest הוא כלי שורת פקודה "ישן" שיבדוק את הקשר האמון של מחשב. כלי זה מותקן כאשר אתה מתקין את RSAT או זמין ישירות בשרת ראשי של הדומיין.
ניתן לאמת את הקשר האמון במחשב כאשר אתה מחובר למחשב על ידי הפעלת הפקודה הבאה:
אזהרה: לא מומלץ להשתמש בשיטה זו מכיוון ש-nltest עובד רק בהקשר המשתמש שבו הוא הושק. אם יש למחשב קשר אמון שבור ואתה מחובר כמשתמש מקומי, הוא ינסה להתחבר לתחום באמצעות האישורים של המשתמש המקומי. זה גורם לשגיאה בגישה נדחית.
netdom (כלי שורת פקודה)
netdom הוא כלי שורת פקודה נוסף שאתה יכול להשתמש בו כדי לאמת יחס אמון. כלי זה מותקן גם כאשר אתה מתקין RSAT או זמין ישירות על שלט הדומיין.
אתה יכול לאמת אמון באמצעות netdom verify
על ידי ספק:
- שם המחשב שברצונך לאמת
- FQDN של הדומיין
- שם משתמש לאמת את הבקשה
- סיסמא של חשבון המשתמש
להלן דוגמא:
על ידי ספקו של *
לפרמטר PasswordO
, netdom יבקש להזין סיסמא.
Test-ComputerSecureChannel (PowerShell)
אחד מהדרכים הטובות לפתור את הבעיה "היחס בין תחנת העבודה לבין הדומיין הראשי נכשל" הוא להשתמש ב-cmdlet Test-ComputerSecureChannel
שב-PowerShell. קומדל זה כלול בחלונות 10 ופשוט יותר לשימוש.
הפקודה Test-ComputerSecureChannel
פועלת מקומית על מחשב ב-Windows 10. כאשר מחוברים למחשב באופן אינטראקטיבי, פתחו חלון קונסול PowerShell והריצו את Test-ComputerSecureChannel
בלעדיו פרמטרים. הוא יחזיר אמת או שקר, תלוי אם האמון תקין או לא.
תוכל גם לציין שרת ספציפי לבדיקה שהסיסמאות מסונכרנות באמצעות פרמטר Server
.
הפקודה היא פשוטה לשימוש ויש בה אפשרות לתיקון, אך נשמור על הדגמה לחלק התיקונים.
אם יש לך את הסיסמה של מנהל המערכת המקומי במחשבים שברצונך לבדוק והפעלת PowerShell Remoting מאופשרת בהם, תוכל גם להשתמש בפקודה Invoke-Command
. על ידי שימוש בפקודה Invoke-Command
, תוכל להריץ את Test-ComputerSecureChannel
מרחוק על מחשבים רבים יחד.
בדיקת יחסי אמון בצורה מרוכזת
עכשיו שאתה יודע איך לבדוק את היחסי אמון מרחוק, הנה קטע קוד שתוכל להשתמש בו כדי לבדוק את כל מחשבי ה-AD שלך! בתסריט זה, אני בודק תחילה כדי לוודא שהמחשב מקוון. אם לא, יחזיר מנותק. אם כן, הוא יריץ את Test-ComputerSecureChannel
על כל מחשב ויחזיר או אמת או שקר.
לדעת והבנה של הבעיה הן השלב הראשון, אך איך נתקן את זה? אתה כעת יודע שעליך להביא את חשבון המחשב המאוחסן במחשב המקומי להיות זהה לחשבון המחשב המאוחסן ב-AD.
ישנם הרבה "פתרונות" שם עבור בעיה כמו "היחסי האמון בין תחנת העבודה הזו והדומיין הראשי נכשלו". ניתן לבצע את הפתרונות הללו דרך ממשק משתמש גרפי (GUI), דרך PowerShell, או דרך כלי שורת פקודה מסורתיים.
- איפוס סיסמת חשבון המחשב ב-AD
- איפוס סיסמת חשבון המחשב המקומי
- ניתוק והצטרפות מחדש של המחשב בווינדוס
- הסרת חשבון המחשב לחלוטין והצטרפות מחדש של המחשב בווינדוס
יש הרבה אפשרויות! במדריך הזה, נתמקד בתיקון הבעיה הזו באמצעות PowerShell וכלים שורת פקודה (לשלימות). אם עדיין לא משתמשים ב-PowerShell, אז כדאי להתחיל!
תיקון הבעיה: איפוס סיסמת המחשב
netdom (כלי שורת פקודה)
A trust can be repaired and the “the trust relationship between this workstation and the primary domain failed” error message can be eliminated by using the old-school netdom command-line tool. If you’re logged into the computer locally as an administrative user, you can run netdom resetpwd to initiate the password reset sequence as shown below.
בדוגמה זו:
- DC הוא שם של בקר דומיין
- abertram הוא שם של חשבון משתמש ב-Active Directory עם זכויות לאיפוס סיסמת המחשב
- * הוא מציין מקום לסיסמת המשתמש שתבקש לאחר מכן.
Reset-ComputerMachinePassword (PowerShell)
אחד מהדרכים הטובות ביותר לתקן יחסי אמון הוא באמצעות הפקודה Reset-ComputerMachinePassword
. פקודה זו מופעלת על המחשב המקומי ותתחיל רצף איפוס סיסמה. התחביר שלה אינו יכול להיות יותר פשוט.
אם ברצונך לציין שרת ספציפי לאיפוס, תוכל לציין אותו באמצעות הפרמטר Server
יחד עם אישור (הוא ישתמש במשתמש המקומי כברירת מחדל).
הדוגמה למטה תבקש שם משתמש וסיסמה ל-AD ותנסה לאפס את הסיסמה על המחשב המקומי ועל שרת ה-DC בתחום DC.
ניתן גם להריץ זאת מרחוק באמצעות Invoke-Command
אם יש זמינות ל-PowerShell Remoting על המחשב. למטה, אני משיג את שם המשתמש והסיסמה עבור חשבון המנהל המקומי על המחשב. אני גם משיג את האישור שיש לו זכויות לאפס את סיסמת חשבון ה-AD של המחשב הזה. אז אני מעביר את $domainCredential
למהלך המרוחק באמצעות הבנייה של $using
.
שימו לב שזה עובד גם אם חשבון המחשב הוסר מה-Active Directory. צרו חשבון מחשב בשם זהה והפקק על-
Reset-ComputerMachinePassword
יוודא שהסיסמה מסונכרנת.
איפוס סיסמת חשבון מחשב מקומי בכמויות
רוצים לטפל בשגיאת "היחסי האמון בין תחנת העבודה ותחום הראשי נכשלו" במקביל על הרבה מחשבים בו זמנית? אין בעיה. באמצעות לולאת foreach נוכל להריץ את Reset-ComputerMachinePassword
גם בכמויות.
Test-ComputerSecureChannel -Repair (PowerShell)
דרך נוספת להתחיל את תהליך שינוי הסיסמה היא להפעיל את Test-ComputerSecureChannel
, אך הפעם להשתמש באפשרות Repair
. ממה שאני יכול להבחין, תהליך זה זהה לשימוש ב- Reset-ComputerMachinePassword
. בקונסולת המחשב, השתמש בפרמטר Repair
ובפרמטר Credential
.
ודא שתמיד משתמש בפרמטר Credential
כאן. אם לא, דומה לכלי nltest, הוא ינסה להשתמש בחשבון המקומי ולא יעבוד.
תיקון יחסי האמון באופן כולל
השלך את הפקודה הזו לתוך לולאת ה- foreach שאנו משתמשים בה והכל יתקיים!
תיקון הבעיה: הצטרפות מחדש לתחום
אם איפוס סיסמת החשבון במחשב אינו עובד בשבילך, תמיד קיימת האפשרות הגרעינית. אתה יכול להצטרף מחדש את המחשב לתחום של Active Directory. למרות שלא תמיד נדרש, היו לי פעמים שבהן הייתה צורך בשיטה זו.
שים לב ששמעתי דיווחים על כך שאין צורך בהסרת הצטרפות. ייתכן שיהיה ניתן להתקדם רק על ידי כפיית הצטרפות חדשה. התוצאה תכולת ותהיה משתנה ממקרה למקרה.
אתה יכול:
- להתחבר למחשב באמצעות חשבון מנהל מקומי
- ללכת אל מאפייני המערכת
- ללחוץ על שינוי
- להגדיר אותו לקבוצת עבודה
- לאתחל
- להגדיר אותו חזרה לתחום
שים לב שהזכרתי יכול. אל תעשה זאת. זה מבזבז את הזמן שלך כאשר תוכל לאוטומטיז זאת בעזרת PowerShell.
ישנם שני דרכים שמצאתי לשימוש ב-PowerShell כדי להפריד מתחום ולהצטרף אליו.
באמצעות CIM
ניתן להצטרף לדומיין באמצעות PowerShell (וגם להפריד ממנו) באמצעות מחלקת ה-CIM בשם Win32_ComputerSystem. מחלקה זו מכילה שני שיטות שמאפשרות לך להפריד ולהצטרף למחשב לתחום בשמות UnJoinDomainOrWorkgroup()
ו־JoinDomainOrWorkGroup
.
בשל הכך שזוהי CIM, תוכל להפעיל זאת באותו הקלות גם מרחוק כמו שאתה יכול לעשות זאת מקומית. ומכיוון שאני מניח שתעדיף להפעיל זאת מרחוק מנוחת השולחן שלך, הנה קטע קוד שעושה בדיוק זאת.
"היחסי אמון בין תחנת העבודה הזו והתחום הראשי נכשל" – השג!
שים לב לפרמטר FUnjoinOptions
למעלה. בחרתי לציין 4 כאן. זה עושה את ההתנהלות המותרת כאשר מתנהלים התנהלות ידנית של הפרצת מחשב. אפשר גם להשתמש באפשרות 0 אם תרצה להשיג תנהלות שונה.
לאחר שהמחשב נפרד, תוכל להצטרף מחדש לדומיין באמצעות השיטה JoinDomainOrWorkGroup()
.
שים לב לפרמטר FJoinOptions
למעלה. בחרתי לציין 3 כאן. זה מבצע את ההתנהגות ברירת המחדל בעת הצטרפות ידנית של מחשב. אפשר למצוא אפשרויות נוספות כמו הוספה ל-OU ספציפי דרך תיעוד JoinDomainOrWorkgroup.
טיפ: ניתן גם לבצע התנפקות והצטרפות של מחשבים רבים בו זמנית דרך השגת מחלקת
ComputerName
בפרמטרGet-CimInstance
.
שימוש ב-Remove-Computer ו-Add-Computer Cmdlets
ניתן גם להשתמש ב- cmdlets המובנים של PowerShell כדי לבצע התנפקות והצטרפות של מחשב לדומיין באמצעות PowerShell. אפשר להשתמש ב-Remove-Computer
וב-Add-Computer
.
לביטול הצטרפות של מחשב באמצעות PowerShell, התחבר למקלדת המחשב והשתמש ב־Remove-Computer
cmdlet. ספק את פרטי הזיהוי של הדומיין עם ההרשאות לביטול הצטרפות המחשב. תוכל גם לציין את הפרמטר Restart
כדי לכפות את האחזור אחרי הצטרפות ו־Force
כדי שלא יבקש אישור.
לאחר שהמחשב הופעל מחדש, תוכל להשתמש ב־Add-Computer
cmdlet כדי להצטרף את המחשב לדומיין באמצעות PowerShell. תוכל להשתמש ב־Add-Computer
cmdlet מרחוק על ידי ספק הפרמטר ComputerName
. תשתמש גם בפרטי משתמש מקומיים כדי לבצע את החיבור ובפרטי הזיהוי של הדומיין כדי לאמת לדומיין.
כאשר המחשב מתאחד מחדש, אני מקווה שכעת לא תקבלו עוד את ההודעת שגיאה "היחסי האמון בין תחנת העבודה לדומיין הראשי נכשלו".
ביטול והצטרפות לדומיין באופן אוטומטי
מכיוון שהייתה לי צורך לבצע את התהליך הזה פעמים רבות מדי, בניתי סקריפט PowerShell שעושה את כל העבודה בשבילך. אם תספקו את שם המחשב, הוא יעשה את הסידור הבא:
- לבטל את הצטרפות המחשב
- להפעיל מחדש ולהמתין שהוא ייצא שוב
- להצטרף לדומיין
- להפעיל מחדש ולהמתין שהוא ייצא שוב
ניתן לנסות את הסקריפט הזה דרך GitHub.
סיכום
עכשיו עליך להבין מלא את הבעיה וכמה פתרונות להודעת השגיאה המפורסמת "הקישור הבין העובדתי של המחשב הזה למתחם הראשי נכשל". אני מקווה שמדריך זה סיפק לך תובנות ואפשר לך למצוא פתרונות משלך לבעיה של מחשבים שנופלים מהתחום!
קריאה נוספת
הקפיצו על כמה פוסטים נוספים קשורים!