Skip to content

Commit 17a54d7

Browse files
authored
added connect-entra disconnect-entra in beta (#789)
1 parent 53af88b commit 17a54d7

4 files changed

Lines changed: 830 additions & 0 deletions

File tree

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
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+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
function Disconnect-Entra {
2+
[CmdletBinding(DefaultParameterSetName = 'GetQuery')]
3+
param ()
4+
Disconnect-MgGraph
5+
}

0 commit comments

Comments
 (0)