1+ function Connect-Entra {
2+ [CmdletBinding (DefaultParameterSetName = ' UserParameterSet' )]
3+ param (
4+ [Parameter (ParameterSetName = " UserParameterSet" , Position = 1 )]
5+ [System.String []] $Scopes ,
6+ [Parameter (ParameterSetName = " AppCertificateParameterSet" , Position = 1 )]
7+ [Parameter (ParameterSetName = " UserParameterSet" )]
8+ [Parameter (ParameterSetName = " IdentityParameterSet" )]
9+ [Alias (" AppId" , " ApplicationId" )][System.String ] $ClientId ,
10+ [Parameter (ParameterSetName = " AppCertificateParameterSet" )]
11+ [Parameter (ParameterSetName = " AppSecretCredentialParameterSet" )]
12+ [Parameter (ParameterSetName = " UserParameterSet" , Position = 4 )]
13+ [Alias (" Audience" , " Tenant" )][System.String ] $TenantId ,
14+ [Parameter (ParameterSetName = " AppCertificateParameterSet" )]
15+ [Parameter (ParameterSetName = " AppSecretCredentialParameterSet" )]
16+ [Parameter (ParameterSetName = " UserParameterSet" )]
17+ [Parameter (ParameterSetName = " IdentityParameterSet" )]
18+ [Parameter (ParameterSetName = " EnvironmentVariableParameterSet" )]
19+ $ContextScope ,
20+ [Parameter (ParameterSetName = " AppCertificateParameterSet" )]
21+ [Parameter (ParameterSetName = " AppSecretCredentialParameterSet" )]
22+ [Parameter (ParameterSetName = " AccessTokenParameterSet" )]
23+ [Parameter (ParameterSetName = " UserParameterSet" )]
24+ [Parameter (ParameterSetName = " IdentityParameterSet" )]
25+ [Parameter (ParameterSetName = " EnvironmentVariableParameterSet" )]
26+ [ValidateNotNullOrEmpty ()]
27+ [Alias (" EnvironmentName" , " NationalCloud" )][System.String ] $Environment ,
28+ [Parameter (ParameterSetName = " EnvironmentVariableParameterSet" )]
29+ [Switch ] $EnvironmentVariable ,
30+ [Parameter (ParameterSetName = " UserParameterSet" )]
31+ [Alias (" UseDeviceAuthentication" , " DeviceCode" , " DeviceAuth" , " Device" )][System.Management.Automation.SwitchParameter ] $UseDeviceCode ,
32+ [Parameter (ParameterSetName = " AppCertificateParameterSet" )]
33+ [Parameter (ParameterSetName = " AppSecretCredentialParameterSet" )]
34+ [Parameter (ParameterSetName = " AccessTokenParameterSet" )]
35+ [Parameter (ParameterSetName = " UserParameterSet" )]
36+ [Parameter (ParameterSetName = " IdentityParameterSet" )]
37+ [Parameter (ParameterSetName = " EnvironmentVariableParameterSet" )]
38+ [ValidateNotNullOrEmpty ()]
39+ [Double ] $ClientTimeout ,
40+ [Parameter ()]
41+ [Switch ] $NoWelcome ,
42+ [Parameter (ParameterSetName = " IdentityParameterSet" , Position = 1 )]
43+ [Alias (" ManagedIdentity" , " ManagedServiceIdentity" , " MSI" )][System.Management.Automation.SwitchParameter ] $Identity ,
44+ [Parameter (ParameterSetName = " AppCertificateParameterSet" , Position = 2 )]
45+ [Alias (" CertificateSubject" , " CertificateName" )][System.String ] $CertificateSubjectName ,
46+ [Parameter (ParameterSetName = " AppCertificateParameterSet" , Position = 3 )]
47+ [System.String ] $CertificateThumbprint ,
48+ [Parameter (ParameterSetName = " AppCertificateParameterSet" )]
49+ [System.Security.Cryptography.X509Certificates.X509Certificate2 ] $Certificate ,
50+ [Parameter (ParameterSetName = " AppSecretCredentialParameterSet" )]
51+ [Alias (" SecretCredential" , " Credential" )][System.Management.Automation.PSCredential ] $ClientSecretCredential ,
52+ [Parameter (ParameterSetName = " AccessTokenParameterSet" , Position = 1 )]
53+ [System.Security.SecureString ] $AccessToken
54+ )
55+
56+ PROCESS {
57+ $params = @ {}
58+ $keysChanged = @ {}
59+ if ($null -ne $PSBoundParameters [" Scopes" ]) {
60+ $params [" Scopes" ] = $PSBoundParameters [" Scopes" ]
61+ }
62+
63+ if ($null -ne $PSBoundParameters [" ClientId" ]) {
64+ $params [" ClientId" ] = $PSBoundParameters [" ClientId" ]
65+ }
66+
67+ if ($null -ne $PSBoundParameters [" TenantId" ]) {
68+ $params [" TenantId" ] = $PSBoundParameters [" TenantId" ]
69+ }
70+
71+ if ($null -ne $PSBoundParameters [" ContextScope" ]) {
72+ $params [" ContextScope" ] = $PSBoundParameters [" ContextScope" ]
73+ }
74+
75+ if ($null -ne $PSBoundParameters [" Environment" ]) {
76+ $params [" Environment" ] = $PSBoundParameters [" Environment" ]
77+ }
78+
79+ if ($PSBoundParameters.ContainsKey (" EnvironmentVariable" )) {
80+ $params [" EnvironmentVariable" ] = $PSBoundParameters [" EnvironmentVariable" ]
81+ }
82+
83+ if ($null -ne $PSBoundParameters [" UseDeviceCode" ]) {
84+ $params [" UseDeviceCode" ] = $PSBoundParameters [" UseDeviceCode" ]
85+ }
86+
87+ if ($null -ne $PSBoundParameters [" ClientTimeout" ]) {
88+ $params [" ClientTimeout" ] = $PSBoundParameters [" ClientTimeout" ]
89+ }
90+
91+ if ($PSBoundParameters.ContainsKey (" NoWelcome" )) {
92+ $params [" NoWelcome" ] = $PSBoundParameters [" NoWelcome" ]
93+ }
94+
95+ if ($PSBoundParameters.ContainsKey (" Identity" )) {
96+ $params [" Identity" ] = $PSBoundParameters [" Identity" ]
97+ }
98+
99+ if ($null -ne $PSBoundParameters [" CertificateSubjectName" ]) {
100+ $params [" CertificateSubjectName" ] = $PSBoundParameters [" CertificateSubjectName" ]
101+ }
102+
103+ if ($null -ne $PSBoundParameters [" CertificateThumbprint" ]) {
104+ $params [" CertificateThumbprint" ] = $PSBoundParameters [" CertificateThumbprint" ]
105+ }
106+
107+ if ($null -ne $PSBoundParameters [" Certificate" ]) {
108+ $params [" Certificate" ] = $PSBoundParameters [" Certificate" ]
109+ }
110+
111+ if ($null -ne $PSBoundParameters [" ClientSecretCredential" ]) {
112+ $params [" ClientSecretCredential" ] = $PSBoundParameters [" ClientSecretCredential" ]
113+ }
114+
115+ if ($null -ne $PSBoundParameters [" AccessToken" ]) {
116+ $params [" AccessToken" ] = $PSBoundParameters [" AccessToken" ]
117+ }
118+
119+ if ($PSBoundParameters.ContainsKey (" Verbose" ))
120+ {
121+ $params [" Verbose" ] = $Null
122+ }
123+ if ($PSBoundParameters.ContainsKey (" Debug" ))
124+ {
125+ $params [" Debug" ] = $Null
126+ }
127+ if ($null -ne $PSBoundParameters [" WarningVariable" ])
128+ {
129+ $params [" WarningVariable" ] = $PSBoundParameters [" WarningVariable" ]
130+ }
131+ if ($null -ne $PSBoundParameters [" InformationVariable" ])
132+ {
133+ $params [" InformationVariable" ] = $PSBoundParameters [" InformationVariable" ]
134+ }
135+ if ($null -ne $PSBoundParameters [" InformationAction" ])
136+ {
137+ $params [" InformationAction" ] = $PSBoundParameters [" InformationAction" ]
138+ }
139+ if ($null -ne $PSBoundParameters [" OutVariable" ])
140+ {
141+ $params [" OutVariable" ] = $PSBoundParameters [" OutVariable" ]
142+ }
143+ if ($null -ne $PSBoundParameters [" OutBuffer" ])
144+ {
145+ $params [" OutBuffer" ] = $PSBoundParameters [" OutBuffer" ]
146+ }
147+ if ($null -ne $PSBoundParameters [" ErrorVariable" ])
148+ {
149+ $params [" ErrorVariable" ] = $PSBoundParameters [" ErrorVariable" ]
150+ }
151+ if ($null -ne $PSBoundParameters [" PipelineVariable" ])
152+ {
153+ $params [" PipelineVariable" ] = $PSBoundParameters [" PipelineVariable" ]
154+ }
155+ if ($null -ne $PSBoundParameters [" ErrorAction" ])
156+ {
157+ $params [" ErrorAction" ] = $PSBoundParameters [" ErrorAction" ]
158+ }
159+ if ($null -ne $PSBoundParameters [" WarningAction" ])
160+ {
161+ $params [" WarningAction" ] = $PSBoundParameters [" WarningAction" ]
162+ }
163+ Write-Debug (" ============================ TRANSFORMATIONS ============================" )
164+ $params.Keys | ForEach-Object { " $_ : $ ( $params [$_ ]) " } | Write-Debug
165+ Write-Debug (" =========================================================================`n " )
166+ Connect-MgGraph @params
167+ }
168+ }
0 commit comments