public/Disconnect-MyCorp.ps1
|
<#
.SYNOPSIS Disconnects from Microsoft Graph, Azure, Exchange Online, and Teams sessions used by MyCorp. .DESCRIPTION Helper cmdlet used to cleanly sign out from cloud service sessions opened by Connect-MyCorp. This is the MyCorp equivalent of running: Disconnect-MgGraph Disconnect-AzAccount Disconnect-ExchangeOnline Disconnect-MicrosoftTeams .EXAMPLE Disconnect-MyCorp .EXAMPLE Disconnect-MtMyCorp .EXAMPLE Disconnect-MyCorpGraph #> function Disconnect-MyCorp { [Alias("Disconnect-MtMyCorp", "Disconnect-MyCorpGraph")] [CmdletBinding()] param() # # Microsoft Graph # if ($__MyCorpSession.Connections -contains "Graph" -or $__MyCorpSession.Connections -contains "All") { Write-Verbose -Message "Disconnecting from Microsoft Graph." try { Disconnect-MgGraph -ErrorAction Stop } catch { Write-Verbose "Graph disconnection failed or no active session." } } # # Microsoft Azure # if ($__MyCorpSession.Connections -contains "Azure" -or $__MyCorpSession.Connections -contains "All") { Write-Verbose -Message "Disconnecting from Microsoft Azure." try { Disconnect-AzAccount -ErrorAction Stop } catch { Write-Verbose "Azure disconnection failed or no active session." } } # # Exchange Online / Security & Compliance # if ( $__MyCorpSession.Connections -contains "ExchangeOnline" -or $__MyCorpSession.Connections -contains "SecurityCompliance" -or $__MyCorpSession.Connections -contains "All" ) { Write-Verbose -Message "Disconnecting from Microsoft Exchange Online." try { Disconnect-ExchangeOnline -Confirm:$false -ErrorAction Stop } catch { Write-Verbose "Exchange Online disconnection failed or no active session." } } # # Microsoft Teams # if ($__MyCorpSession.Connections -contains "Teams" -or $__MyCorpSession.Connections -contains "All") { Write-Verbose -Message "Disconnecting from Microsoft Teams." try { Disconnect-MicrosoftTeams -ErrorAction Stop } catch { Write-Verbose "Teams disconnection failed or no active session." } } } |