Public/Get-ADSIDomainTrustRelationship.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
function Get-ADSIDomainTrustRelationship
{
<#
 .SYNOPSIS
  Function to retrieve the Trust relationship of a domain. Current one by default.
  
 .DESCRIPTION
  Function to retrieve the Trust relationship of a domain. Current one by default.
  
 .PARAMETER Credential
  Specifies the alternative credential to use. Default is the current user.
  
 .PARAMETER DomainName
  Specifies the alternative domain name to use. Default is the current one.
  
 .NOTES
  Francois-Xavier Cat
  lazywinadmin.com
  @lazywinadm
  github.com/lazywinadm
#>

    
    [CmdletBinding()]
    [OutputType('System.DirectoryServices.ActiveDirectory.TrustRelationshipInformation')]
    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 FirstName specified'
                $Splatting = @{ }
                IF ($PSBoundParameters['Credential']) { $Splatting.Credential = $Credential }
                IF ($PSBoundParameters['DomainName']) { $Splatting.DomainName = $DomainName }
                
                (Get-ADSIDomain @splatting).GetAllTrustRelationships()
                
            }
            ELSE
            {
                (Get-ADSIDomain).GetAllTrustRelationships()
            }
            
        }
        CATCH
        {
            Write-Warning -Message '[Get-ADSIDomainTrustRelationship][PROCESS] Something wrong happened!'
            Write-Warning -Message $error[0].Exception.Message
        }
    }
}