Public/Get-ADSIGlobalCatalog.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
function Get-ADSIGlobalCatalog
{
<#
 .SYNOPSIS
  Function to retrieve the Global Catalog in the Forest
  
 .DESCRIPTION
  Function to retrieve the Global Catalog in the Forest
  
 .PARAMETER Credential
  Specifies the alternative credential to use. Default is the current user.
  
 .PARAMETER ForestName
  Specifies the alternative Forest name to query. Default is the current one.
  
 .NOTES
  Francois-Xavier Cat
  www.lazywinadmin.com
  @lazywinadm
  github.com/lazywinadmin
#>

    
    [CmdletBinding()]
    [OutputType('System.DirectoryServices.ActiveDirectory.GlobalCatalog')]
    param
    (
        [Alias("RunAs")]
        [System.Management.Automation.PSCredential]
        [System.Management.Automation.Credential()]
        $Credential = [System.Management.Automation.PSCredential]::Empty,
        
        $ForestName = [System.DirectoryServices.ActiveDirectory.Forest]::Getcurrentforest()
    )
    
    PROCESS
    {
        TRY
        {
            Write-Verbose '[Get-ADSIGlobalCatalog][PROCESS] Credential or FirstName specified'
            (Get-ADSIForest @PSBoundParameters).GlobalCatalogs
        }
        CATCH
        {
            Write-Warning -Message '[Get-ADSIGlobalCatalog][PROCESS] Something wrong happened!'
            Write-Warning -Message $error[0].Exception.Message
        }
    }
}