Public/get-AllegisInUseUsername.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
72
73
74
75
76
77
78
79
80
81
82
function get-AllegisInUseUsername {
    [cmdletbinding()]
    param(       
        [Parameter(Mandatory)] 
        [string]$username,
        [pscredential]$adcred,
        [string]$adforest,
        [boolean]$corpAD=$true,
        [boolean]$ASQL=$false,
        [string]$sqlserver,
        [pscredential]$sqlcred,
        [string]$sqldatabase,
        [string]$sqltable,
        [boolean]$azureAD=$false,
        [boolean]$snow=$false,
        [string]$snowEnv,
        [pscredential]$snowcred,
        [boolean]$fim=$false,
        [string]$fimservice,
        [string]$FIMuri,
        [PSCredential]$fimcred,
        [boolean]$IdentityNow=$false,
        [string]$IDNOrg,
        [string]$IDNClientID,
        [string]$IDNSecret

)
    $found=$false
    if (-not $found -and $ASQL)
    {
        $params = @{
            'Database' = $sqldatabase
            'ServerInstance' = $sqlserver
            'Username' = $sqlcred.UserName
            'Password' = $sqlcred.GetNetworkCredential().Password
            'Query' = "select * from [dbo].[$sqltable] where mailnickname='$username'"
        }
        $user=Invoke-Sqlcmd @params
        if ($user -ne $null){
            $found=$true
        }
    }
    if (-not $found -and $corpad){
        if ($adcred -eq $null){
            $user=get-aduser -filter {samaccountname -eq $username -or mailnickname -eq $username} -server $adforest
        }else{
            $user=get-aduser -filter {samaccountname -eq $username -or mailnickname -eq $username} -server $adforest -Credential $adcred
        }
        if ($user -ne $null){
            $found=$true
        }
    }
    if (-not $found -and $azureAD)
    {
        $user=$null
        if ($user -ne $null){
            $found=$true
        }
    }
    if (-not $found -and $snow)
    {
        $user=get-AllegisSnowUser -snowenv $snowEnv -snowcred $snowcred -uid $username
        if ($user -ne $null){
            $found=$true
        }
    }
    if (-not $found -and $fim)
    {
        $user=get-AllegisFIMUser -accountname $username -fimservice $fimservice -FIMuri $FIMuri -fimcred $fimcred
        if ($user -ne $null){
            $found=$true
        }
    }
    if (-not $found -and $IdentityNow)
    {
        $user=get-AllegisIDNIdentity -orgname $IDNOrg -uid $username -IDNClientID $idnclientid -IDNClientKey $IDNSecret
        if ($user -ne $null){
            $found=$true
        }
    }
    return $found
}