Public/Import-CGMMExchOnline.ps1
Function Import-CGMMExchOnline { <# .SYNOPSIS Connects to Exchange Online with a specific prefix .DESCRIPTION Connects to Exchange Online with a specific prefix used by the module to interact with the service. .EXAMPLE Import-CGMMExchOnline -Credential $Credential Connect to Exchange Online using the specified credentials. .NOTES #> [CmdletBinding()] Param( [parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.CredentialAttribute()] $Credential ) Begin {} Process { $Prefix = $CloudCmdletPrefix # New-PSSession $SessionParameters = @{ 'ConfigurationName' = 'Microsoft.Exchange(CGMMCloud)' 'ConnectionUri' = 'https://outlook.office365.com/powershell-liveid/' 'Credential' = $Credential 'Authentication' = 'Basic' } Try {$Session = New-PSSession @SessionParameters -AllowRedirection -ErrorAction Stop} Catch { $PsCmdlet.ThrowTerminatingError($PSItem) } # Import-PSSession $PSSessionParameters = @{ 'Session' = $Session } If ($Prefix) {$PSSessionParameters.Add("Prefix",$Prefix)} Try {$ModuleInfo = Import-PSSession @PSSessionParameters -AllowClobber -DisableNameChecking -ErrorAction Stop} Catch { $PsCmdlet.ThrowTerminatingError($PSItem) } # Import-Module $ModuleParameters = @{ 'ModuleInfo' = $ModuleInfo } If ($Prefix) {$ModuleParameters.Add("Prefix",$Prefix)} Try { Import-Module @ModuleParameters -DisableNameChecking -Global -ErrorAction Stop } Catch { $PsCmdlet.ThrowTerminatingError($PSItem) } } End {} } |