ForestDomain.psm1
#region Functions #region Get-ActiveDirectoryForestLDAP Function Get-ActiveDirectoryForestLDAP { [cmdletBinding(DefaultParameterSetName = "None")] Param ( [Parameter(Mandatory = $true, ParameterSetName = "Custom-Server")] [string] $Server, [Parameter(Mandatory = $true, ParameterSetName = "Custom-DomainName")] [string] $Name, [Parameter(Mandatory = $true, ParameterSetName = "Custom-Server")] [Parameter(Mandatory = $true, ParameterSetName = "Custom-DomainName")] [PSCredential] $Credential ) if($Credential) { Write-Verbose "Using provided account credentials." if($Name) { $directoryContext = New-Object -TypeName System.DirectoryServices.ActiveDirectory.DirectoryContext -ArgumentList @(,"Forest", $Name, $Credential.UserName, $Credential.GetNetworkCredential().Password) } if($Server) { $directoryContext = New-Object -TypeName System.DirectoryServices.ActiveDirectory.DirectoryContext -ArgumentList @(,"DirectoryServer", $Server, $Credential.UserName, $Credential.GetNetworkCredential().Password) } $forest = [System.DirectoryServices.ActiveDirectory.Forest]::GetForest($directoryContext) } else { Write-Verbose "Using current context account." $forest = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest() } $forest | Select-Object -Property Name,Sites,Domains,ForestModeLevel,ForestMode,RootDomain } #endregion #region Get-ActiveDirectoryDomainLDAP Function Get-ActiveDirectoryDomainLDAP { [cmdletBinding(DefaultParameterSetName = "None")] Param ( [Parameter(Mandatory = $true, ParameterSetName = "Custom-Server")] [string] $Server, [Parameter(Mandatory = $true, ParameterSetName = "Custom-DomainName")] [string] $Name, [Parameter(Mandatory = $true, ParameterSetName = "Custom-Server")] [Parameter(Mandatory = $true, ParameterSetName = "Custom-DomainName")] [PSCredential] $Credential ) if($Credential) { Write-Verbose "Using provided account credentials." if($Name) { $directoryContext = New-Object -TypeName System.DirectoryServices.ActiveDirectory.DirectoryContext -ArgumentList @(,"Domain", $Name, $Credential.UserName, $Credential.GetNetworkCredential().Password) } if($Server) { $directoryContext = New-Object -TypeName System.DirectoryServices.ActiveDirectory.DirectoryContext -ArgumentList @(,"DirectoryServer", $Server, $Credential.UserName, $Credential.GetNetworkCredential().Password) } $domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($directoryContext) } else { Write-Verbose "Using current context account." $domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() } $domain | Select-Object -Property Name,Forest,DomainModeLevel,DomainMode } #endregion #endregion #region Exports Export-ModuleMember -Function Get-ActiveDirectoryForestLDAP Export-ModuleMember -Function Get-ActiveDirectoryDomainLDAP #endregion |