PowerShell Genie

PowerShell FSMO roles

Identify the affected role and recovery need before deciding to transfer or seize it.

Lesson 2 min read Windows PowerShell 5.1 and PowerShell 7

Documentation: Microsoft Learn

Overview

Get-ADForest reports the two forest roles and Get-ADDomain reports the three domain roles. Capture the holder names and investigate the role involved in the failed operation. A role-holder outage does not make every directory operation fail in the same way.

For example, existing RID allocations can allow account creation to continue while the RID master is unavailable. Schema changes depend on the schema master. The PDC emulator has several responsibilities, so assess the actual symptoms and recovery requirements.

Transfer a role when the current holder is available and an orderly move is possible. Seizure is a recovery decision for an unavailable holder; the cmdlet’s Force option can attempt a transfer before seizing. Validate the new holder’s health and replication first.

The treatment of the former holder after seizure is role- and situation-dependent. Follow the supported recovery procedure before reconnecting or rebuilding it; do not replace that procedure with a blanket rule that every former holder must never return.

Inspect this example’s structure

Read the command and its supplied arguments. This example requires real PowerShell or its module; this diagram does not execute it.

[pscustomobject]@{ Forest = 'Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster' Domain = 'Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster' Move = 'Move-ADDirectoryServerOperationMasterRole -Identity DC02 -OperationMasterRole PDCEmulator' Seize = 'add -Force only when the holder is gone permanently' } | Format-List
  1. Stage 1[pscustomobject]@{Positional values or no named parameters
  2. Stage 2Format-ListPositional values or no named parameters

    An example to inspect

    Preview the example. Sign in for the full lesson and activities.

    [pscustomobject]@{
      Forest = 'Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster'
      Domain = 'Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster'
      Move = 'Move-ADDirectoryServerOperationMasterRole -Identity DC02 -OperationMasterRole PDCEmulator'
      Seize = 'add -Force only when the holder is gone permanently'
    } | Format-List

    What happens

    The example prints role queries and operation strings. It does not transfer or seize a role. Use read-only role queries first and document the intended holder before planning a change.

    Worth remembering

    After a role move, verify ownership, replication and the operation that required the role.

    Primary documentation

    Microsoft Learn: move-addirectoryserveroperationmasterrole

    Try it

    Expected output · prints command text; does not execute these commands

    1PS> [pscustomobject]@{
    2PS> Forest = 'Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster'
    3PS> Domain = 'Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster'
    4PS> Move = 'Move-ADDirectoryServerOperationMasterRole -Identity DC02 -OperationMasterRole PDCEmulator'
    5PS> Seize = 'add -Force only when the holder is gone permanently'
    6PS> } | Format-List

    Example reader

    Inspect this page's example

    Fictional browser data when supported

    Run supported commands against the practice data, or inspect the example without executing it.

    Ready to inspect.

      Prints the queries for all five FSMO roles and how to move one.

      Show reference output

      Expected output · prints command text; does not execute these commands

      Forest : Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster
      Domain : Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster
      Move   : Move-ADDirectoryServerOperationMasterRole -Identity DC02 -OperationMasterRole PDCEmulator
      Seize  : add -Force only when the holder is gone permanently

      Keep going

      Next: PowerShell Sites and Services

      Check your understanding

      A role holder is temporarily offline. Should you immediately seize its role?

      Genie guidePowerShell FSMO roles

      Identify the affected role and recovery need before deciding to transfer or seize it.