Public/Get-ADSIDomain.ps1
Function Get-ADSIDomain { <# .SYNOPSIS Function to retrieve the current or specified domain .DESCRIPTION Function to retrieve the current or specified domain .PARAMETER Credential Specifies alternative credential to use .PARAMETER DomainName Specifies the DomainName to query .EXAMPLE Get-ADSIDomain Retrieve the current domain .EXAMPLE Get-ADSIForest -DomainName lazywinadmin.com Retrieve the domain lazywinadmin.com .EXAMPLE Get-ADSIDomain -Credential (Get-Credential superAdmin) -Verbose Retrieve the current domain with the specified credential. .EXAMPLE Get-ADSIDomain -DomainName lazywinadmin.com -Credential (Get-Credential superAdmin) -Verbose Retrieve the domain lazywinadmin.com with the specified credential. .NOTES Francois-Xavier Cat LazyWinAdmin.com @lazywinadm github.com/lazywinadmin/ADSIPS .OUTPUTS 'System.DirectoryServices.ActiveDirectory.Domain' .LINK https://msdn.microsoft.com/en-us/library/system.directoryservices.activedirectory.domain(v=vs.110).aspx #> [cmdletbinding()] [OutputType('System.DirectoryServices.ActiveDirectory.Domain')] PARAM ( [Alias("RunAs")] [System.Management.Automation.PSCredential] [System.Management.Automation.Credential()] $Credential = [System.Management.Automation.PSCredential]::Empty, $DomainName = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() ) PROCESS { TRY { IF ($PSBoundParameters['Credential'] -or $PSBoundParameters['DomainName']) { Write-Verbose '[PROCESS] Credential or DomainName specified' $Splatting = @{ } IF ($PSBoundParameters['Credential']) { $Splatting.Credential = $Credential } IF ($PSBoundParameters['DomainName']) { $Splatting.DomainName = $DomainName } $DomainContext = New-ADSIDirectoryContext @splatting -contextType Domain [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($DomainContext) } ELSE { [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() } } CATCH { $pscmdlet.ThrowTerminatingError($_) } } } |