Public/Get-ADSISiteLink.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
function Get-ADSISiteLink
{
<#
 .SYNOPSIS
  Function to retrieve the Active Directory Site Link(s)
  
 .DESCRIPTION
  Function to retrieve the Active Directory Site Link(s)
  
 .PARAMETER Credential
  Specifies alternative credential to use. Default is the current user.
  
 .PARAMETER ForestName
  Specifies the ForestName to query. Default is the current one
  
 .PARAMETER Name
  Specifies the Site Name to find.
  
 .EXAMPLE
  Get-ADSISiteLink
  
 .EXAMPLE
  Get-ADSISiteLink -ForestName lazywinadmin.com
  
 .EXAMPLE
  Get-ADSISiteLink -Credential (Get-Credential superAdmin) -Verbose
  
 .EXAMPLE
  Get-ADSISiteLink -ForestName lazywinadmin.com -Credential (Get-Credential superAdmin) -Verbose
  
 .EXAMPLE
  Get-ADSISiteLink -Name 'Azure'
  
 .OUTPUTS
  System.DirectoryServices.ActiveDirectory.ActiveDirectorySiteLink
  
 .NOTES
  Francois-Xavier Cat
  LazyWinAdmin.com
  @lazywinadm
  github.com/lazywinadmin
#>

    
    [CmdletBinding()]
    [OutputType('System.DirectoryServices.ActiveDirectory.ActiveDirectorySiteLink')]
    PARAM
    (
        [Alias("RunAs")]
        [System.Management.Automation.PSCredential]
        [System.Management.Automation.Credential()]
        $Credential = [System.Management.Automation.PSCredential]::Empty,
        
        $ForestName = [System.DirectoryServices.ActiveDirectory.Forest]::Getcurrentforest(),
        
        [Parameter(ValueFromPipelineByPropertyName=$true)]
        [String]$Name
    )
    
    PROCESS
    {
        TRY
        {
            (Get-ADSISite @PSBoundParameters).Sitelinks
        }
        CATCH
        {
            Write-Warning -Message "[Get-ADSISiteLink][PROCESS] Something wrong happened!"
            Write-Warning -Message $error[0].Exception.Message
        }
    }
}