Powershell and FSMO Roles
November 4th, 2009
No comments
Okay, this will be a quick and dirty post due to lack of time right now.
This one is kind of a tip, rather than a full-blown script or topic. Basically I was looking to grab which system was the PDC Emulator for my current domain (or NOT my current domain) and so I did some google-ing and finally ended up with these little functions.
All I need to do is pass in the DomainName and it spits out the info. For the FSMO roles, it will return an object and for the DomainMode, just the text is returned.
Hopefully you will find them useful.
That’s it for now…
Happy Scripting..
– Mark
Function get-PDCERole ($DomainName) { ## Return the PDC Emulator Role Owner for the specified Domain $DomainContext = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext("Domain", $DomainName) $Domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($DomainContext) $PDCE = $Domain.PDCRoleOwner Return $PDCE } Function get-RIDMasterRole ($DomainName) { ## Return the RID Master Role Owner for the specified Domain $DomainContext = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext("Domain", $DomainName) $Domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($DomainContext) $RIDMaster = $Domain.RIDRoleOwner Return $RIDMaster } Function Get-InfMasterRole ($DomainName) { ## Return the Infrastucture Master role owner for the specified Domain $DomainContext = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext("Domain", $DomainName) $Domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($DomainContext) $InfMaster = $Domain.InfrastructureRoleOwner Return $InfMaster } Function Get-DomainMode ($DomainName) { ## Return the Domain Mode for the specified Domain $DomainContext = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext("Domain", $DomainName) $Domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($DomainContext) $DomainMode = $Domain.DomainMode Return $DomainMode }