PowerShell Code

DNS Record Reporting

View-only PowerShell code for review.

<#
.SYNOPSIS
     This script will get the FSMO roles for the forest and domain.
.DESCRIPTION
     This script will get the FSMO roles for the forest and domain.
     The script will read the forest and domain and check the FSMO roles for each.
     The script will then output the PDCEmulator, InfrastructureMaster, RIDMaster, DomainNamingMaster, and SchemaMaster for the forest and domain.
     The script will display the output in a table format.
     The script will also handle any errors that occur during the process and continue to the next domain controller.
.EXAMPLE
     Get-FSMORoles
     This will run the script and get the FSMO roles for the forest and domain.
.EXAMPLE
     Get-FSMORoles -ReferenceDomain "yourdomainname.com"
     This will run the script and get the FSMO roles for the specified domain.
.INPUTS
     The domain to use as a reference for the forest.
     The domain should be specified in the script.
.OUTPUTS
     The script will output the PDCEmulator, InfrastructureMaster, RIDMaster, DomainNamingMaster, and SchemaMaster for the forest and domain.
     The script will display the output in a table format.
.NOTES
     This script is used for getting the FSMO roles for the forest and domain.
#>

function Get-ForestAndDomainInfo {
     # Get the FSMO roles for the forest
     Write-Output "Forest FSMO Roles:"
     Get-ADForest | Select-Object PDCEmulator, InfrastructureMaster, RIDMaster, DomainNamingMaster, SchemaMaster | Format-Table -AutoSize
 
     # Get the FSMO roles for the domain
     Write-Output "`nDomain FSMO Roles:"
     Get-ADDomain | Select-Object PDCEmulator, InfrastructureMaster, RIDMaster, DomainNamingMaster, SchemaMaster | Format-Table -AutoSize
 
     # Get the domain controllers and their operation master roles
     Write-Output "`nDomain Controllers with Operation Master Roles:"
     Get-ADDomainController -Filter * |
         Select-Object Name, Domain, OperationMasterRoles |
         Where-Object { $_.OperationMasterRoles } |
         Format-Table Name, Domain, OperationMasterRoles -AutoSize
 }