EZO365-Connect.psm1
function Connect-ExchangeOnline { [cmdletbinding()] Param ( [Parameter(Mandatory=$false)] [Switch]$UseMFA , [Parameter(Mandatory=$false)] $Credential , [Parameter(Mandatory=$false)] $Commands = "*" ) $existingSessions = Get-PSSession | ? { $_.ComputerName -eq 'outlook.office365.com'} if(!($existingSessions | ? { $_.State -eq 'Opened' -or $_.Availability -eq 'Available'})) { $existingSessions | Remove-PSSession -EA SI if($UseMFA) { Write-Verbose -Message "Attempting session creation with MFA credentials" try { $exoModule = "$((gci $env:LOCALAPPDATA\Apps\2.0\ -Filter Microsoft.Exchange.Management.ExoPowerShellModule.dll -Recurse).FullName | ? { $_ -notmatch "_none_" } | Select -First 1)" Import-Module $exoModule Write-Verbose -Message "Imported EXO module $($exoModule)" } catch { throw "Could not import ExoPowerShellModule.dll, please ensure Exchange Online PowerShell module is installed: $($_.Exception.Message)" } $session = New-ExoPSSession } else { Write-Verbose -Message "Attempting session creation with Non-MFA credentials" if(!$Credential) { $Credential = (Get-Credential -Message "Enter non-MFA credentials:") } $session = New-PSSession -Name ExchangeOnline ` -ConfigurationName Microsoft.Exchange ` -Credential $credential ` -ConnectionUri https://outlook.office365.com/powershell-liveid/ ` -Authentication Basic ` -AllowRedirection ` -WA SI } Import-Module (Import-PSSession -Session $session -AllowClobber -CommandName $Commands) -Global } else { Write-Verbose -Message "Exchange Online PowerShell session already available and imported." } } function Connect-SkypeForBusinessOnline { [cmdletbinding()] Param ( [Parameter(Mandatory=$false)] [Switch]$UseMFA , [Parameter(Mandatory=$false)] $Credential , [Parameter(Mandatory=$false)] $Commands = "*" ) if(Get-Module -Name SkypeOnlineConnector) { $existingSessions = Get-PSSession | ? { $_.ComputerName -like 'admin*.online.lync.com'} if(!($existingSessions | ? { $_.State -eq 'Opened' -or $_.Availability -eq 'Available'})) { $existingSessions | Remove-PSSession -EA SI Import-Module SkypeOnlineConnector Write-Verbose -Message "Imported module SkypeOnlineConnector" if($UseMFA) { Write-Verbose -Message "Attempting Exchange Online session creation with MFA credentials" $session = New-CsOnlineSession } else { Write-Verbose -Message "Attempting Exchange Online session creation with Non-MFA credentials" if(!$Credential) { $Credential = Get-Credential -Message 'Enter non-MFA credentials:' } $session = New-CsOnlineSession -Credential $Credential } Import-Module (Import-PSSession $session -CommandName $Commands) -Global } else { Write-Verbose -Message 'Skype for Business Online PowerShell session already available and imported' } } else { throw "SkypeOnlineConnector module not installed" } } |