לפני שמורידים Domain Controller מהרשת, משדרגים אותו או מחליפים אותו בשרת חדש, צריך לדעת אם הוא מחזיק באחד מתפקידי FSMO. במדריך הזה אראה שתי דרכים לבדוק את זה: עם הפקודה netdom ועם PowerShell.
מה זה תפקידי FSMO
את רוב השינויים ב-Active Directory אפשר לבצע על כל Domain Controller, והם משוכפלים משם לשאר השרתים. בחלק מהשינויים הסיכון להתנגשות גבוה מדי, ולכן רק שרת אחד מורשה לבצע אותם. השרת הזה מחזיק בתפקיד מסוג Flexible Single Master Operation, או בקיצור FSMO.
יש חמישה תפקידים. שניים מהם קיימים פעם אחת בכל ה-Forest, ושלושה קיימים פעם אחת בכל Domain:
| תפקיד | רמה | מה הוא עושה |
|---|---|---|
| Schema Master | Forest | השרת היחיד שמעדכן את ה-Schema של הספרייה |
| Domain Naming Master | Forest | השרת היחיד שמוסיף או מסיר Domain ב-Forest |
| RID Master | Domain | מחלק מאגרי RID לשאר השרתים, כדי שלכל משתמש וקבוצה יהיה SID ייחודי |
| PDC Emulator | Domain | מקור הזמן של ה-Domain. שינויי סיסמה מגיעים אליו בעדיפות, ונעילת חשבונות מטופלת אצלו |
| Infrastructure Master | Domain | מעדכן את ה-SID וה-DN של אובייקטים שמופיעים בהפניות מ-Domain אחר |

לפני שמתחילים
הפקודה netdom רצה רק מ-Command Prompt שנפתח עם הרשאות מנהל (Run as administrator). היא זמינה על שרת עם התפקיד AD DS, או על מחשב שהותקנו בו כלי AD DS מתוך RSAT.
הפקודות של PowerShell מגיעות מהמודול ActiveDirectory. אם Get-ADDomain לא מוכרת אצלך, המודול עוד לא מותקן במחשב.
איך בודקים מי מחזיק בתפקידים
שלב 1: בדיקה מהירה עם netdom
תפתח Command Prompt כמנהל ותריץ:
netdom query fsmo
הפקודה פונה ל-Domain שהמחשב חבר אליו ומחזירה את רשימת בעלי התפקידים הנוכחיים. כדי לבדוק Domain אחר, מוסיפים לה את שם ה-Domain:
netdom query /domain:contoso.local fsmo
במקום contoso.local תכתוב את שם ה-Domain שלך.
שלב 2: בדיקה עם PowerShell
ב-PowerShell התפקידים מפוצלים בין שני אובייקטים. את שני התפקידים של ה-Forest מקבלים מ-Get-ADForest:
Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster
ואת שלושת התפקידים של ה-Domain מקבלים מ-Get-ADDomain:
Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster
בלי פרמטרים, שתי הפקודות עובדות על ה-Forest וה-Domain של המשתמש המחובר. היתרון כאן הוא שהתוצאה היא אובייקט, אז אפשר לשמור אותה או להשוות אותה בתוך סקריפט. עוד דוגמה לעבודה עם PowerShell מול הדומיין יש במדריך על יצירת משתמשים ב-Active Directory עם סקריפט PowerShell.
שלב 3: בדיקת התוצאה
בכל שורה בפלט יופיע השם המלא של השרת שמחזיק בתפקיד. ב-Domain קטן זה יכול להיות אותו שרת בכל חמש השורות, וזה תקין.
תוודא ששתי הדרכים מראות את אותם שרתים. אם יש הבדל, או שמופיע שרת שכבר לא קיים, עדיף לבדוק את השכפול בין ה-Domain Controllers לפני שמשנים משהו.
מתי חשוב לדעת איפה התפקידים
לפני הורדה או החלפה של Domain Controller. אם השרת מחזיק בתפקיד, מעבירים את התפקיד ל-Domain Controller אחר לפני שמורידים אותו. אפשר להעביר כל תפקיד לכל Domain Controller בארגון.
בבעיות של שעון. ה-PDC Emulator של ה-Domain הראשי ב-Forest הוא מקור הזמן של כל הארגון, ולכן הוא השרת שצריך לקבל זמן ממקור חיצוני. שירות הזמן של Windows נדרש גם ל-Kerberos, כך ששעון לא מדויק כאן משפיע על כל הדומיין.
בנעילות חשבון. נעילת חשבון מטופלת ב-PDC Emulator, ושינויי סיסמה משוכפלים אליו לפני שאר השרתים. כשמחפשים למה משתמש ננעל, מתחילים ממנו.
כשמתכננים Global Catalog. אם לא כל השרתים ב-Domain הם Global Catalog, עדיף שה-Infrastructure Master לא ישב על שרת שהוא Global Catalog. כשה-Recycle Bin של Active Directory מופעל, לתפקיד הזה כבר אין משימות, ואין משמעות לאיזה שרת מחזיק בו.
התיעוד הרשמי של Microsoft: תפקידי FSMO ב-Active Directory ו-הפקודה netdom query.
אם עוד לא הקמת Domain Controller, אפשר להתחיל מהמדריך להתקנת Domain Controller ב-Windows Server ולהריץ את הבדיקה הזאת מיד בסוף ההתקנה.


