ExchangeOnlineManagement.psd1

@{
RootModule = if($PSEdition -eq 'Core')
    {
        '.\netCore\ExchangeOnlineManagement.psm1'
    }
    else # Desktop
    {
        '.\netFramework\ExchangeOnlineManagement.psm1'
    }
FunctionsToExport = @('Connect-ExchangeOnline', 'Connect-IPPSSession', 'Disconnect-ExchangeOnline')
ModuleVersion = '2.0.4'
GUID = 'B5ECED50-AFA4-455B-847A-D8FB64140A22'
Author = 'Microsoft Corporation'
CompanyName = 'Microsoft Corporation'
Copyright = '(c) 2020 Microsoft. All rights reserved.'
Description = 'This is a Public Preview release of Exchange Online PowerShell module which has support of PowerShell 7 and thus enables using this module in Linux machines.
Please check the documentation here - https://aka.ms/exops-docs.
For issues related to the module, contact exocmdletpreview@service.microsoft.com.'

PowerShellVersion = '3.0'
CmdletsToExport = @('Get-EXOCasMailbox','Get-EXOMailbox','Get-EXOMailboxFolderPermission','Get-EXOMailboxFolderStatistics','Get-EXOMailboxPermission','Get-EXOMailboxStatistics','Get-EXOMobileDeviceStatistics','Get-EXORecipient','Get-EXORecipientPermission','Get-MyAnalyticsFeatureConfig','Get-UserBriefingConfig','Set-MyAnalyticsFeatureConfig','Set-UserBriefingConfig')
FileList = if($PSEdition -eq 'Core')
{
    @('.\netCore\Microsoft.Exchange.Management.AdminApiProvider.dll',
        '.\netCore\Microsoft.Exchange.Management.ExoPowershellGalleryModule.dll',
        '.\netCore\Microsoft.Exchange.Management.RestApiClient.dll',
        '.\netCore\Microsoft.Identity.Client.dll',
        '.\netCore\Microsoft.IdentityModel.JsonWebTokens.dll',
        '.\netCore\Microsoft.IdentityModel.Logging.dll',
        '.\netCore\Microsoft.IdentityModel.Tokens.dll',
        '.\netCore\Microsoft.OData.Client.dll',
        '.\netCore\Microsoft.OData.Core.dll',
        '.\netCore\Microsoft.OData.Edm.dll',
        '.\netCore\Microsoft.Online.CSE.RestApiPowerShellModule.Instrumentation.dll',
        '.\netCore\Microsoft.Spatial.dll',
        '.\netCore\Microsoft.Win32.Registry.AccessControl.dll',
        '.\netCore\Newtonsoft.Json.dll',
        '.\netCore\System.Configuration.ConfigurationManager.dll',
        '.\netCore\System.Diagnostics.PerformanceCounter.dll',
        '.\netCore\System.IdentityModel.Tokens.Jwt.dll',
        '.\netCore\System.IO.Abstractions.dll',
        '.\netCore\System.Management.Automation.dll',
        '.\netCore\System.Runtime.CompilerServices.Unsafe.dll',
        '.\netCore\System.Security.Cryptography.Pkcs.dll',
        '.\netCore\System.Security.Cryptography.ProtectedData.dll',
        '.\netCore\System.Security.Permissions.dll',
        '.\netCore\System.Text.Encoding.CodePages.dll',
        '.\license.txt')
}
else # Desktop
{
    @('.\netFramework\Microsoft.Exchange.Management.AdminApiProvider.dll',
        '.\netFramework\Microsoft.Exchange.Management.ExoPowershellGalleryModule.dll',
        '.\netFramework\Microsoft.Exchange.Management.RestApiClient.dll',
        '.\netFramework\Microsoft.Identity.Client.dll',
        '.\netFramework\Microsoft.IdentityModel.Clients.ActiveDirectory.dll',
        '.\netFramework\Microsoft.OData.Client.dll',
        '.\netFramework\Microsoft.OData.Core.dll',
        '.\netFramework\Microsoft.OData.Edm.dll',
        '.\netFramework\Microsoft.Online.CSE.RestApiPowerShellModule.Instrumentation.dll',
        '.\netFramework\Microsoft.Spatial.dll',
        '.\netFramework\Newtonsoft.Json.dll',
        '.\netFramework\System.IO.Abstractions.dll',
        '.\netFramework\System.Management.Automation.dll',
        '.\license.txt')
}

PrivateData = @{
    PSData = @{
    # Tags applied to this module. These help with module discovery in online galleries.
    Tags = 'Exchange', 'ExchangeOnline', 'EXO', 'EXOV2', 'Mailbox', 'Management'

    # Set to a prerelease string value if the release should be a prerelease.
    Prerelease = 'Preview9'

    ReleaseNotes = '
---------------------------------------------------------------------------------------------
Whats new in this release:
v2.0.4-Preview9 :
    1. GA Candidate build and bug fixes.
 
---------------------------------------------------------------------------------------------
Previous Releases:
 
v2.0.4-Preview8 :
    1. Real time policy & security enforcement in all user based authentication. Continuous Access Evaluation (CAE) has been enabled in EXO V2 Module. Read more about CAE here - https://techcommunity.microsoft.com/t5/azure-active-directory-identity/moving-towards-real-time-policy-and-security-enforcement/ba-p/1276933
    2. Manage Exchange Online with Apple MAC Operating System as EXO V2 module now works on the recent versions of Apple MAC OS – Mojave, Catalina & Big Sur. Steps for installing PowerShell on MAC OS is documented here - https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-7.1
 
v2.0.4-Preview7 :
    1. This version of EXO V2 Module is imported at Azure Cloud Shell (https://shell.azure.com ) when you run Connect-ExchangeOnline in any of the Cloud Shell instances available at Azure Portal, Microsoft Admin Center as well as Exchange Admin Center.
    2. With this release, all the new EXO cmdlets can now be used at Azure Cloud Shell.
 
v2.0.4-Preview6:
    1. Support Vanity URLs in the Briefing and MyAnalytics cmdlets.
 
v2.0.4-Preview3 :
    1. Currently Admins have scripts in place that use the PowerShell cmdlets Get-UserAnalyticsConfig and Set-UserAnalyticsConfig to configure MyAnalytics access for individual users in their organization.
    2. By January 25, 2021 these PowerShell cmdlets Get-UserAnalyticsConfig and Set-UserAnalyticsConfig would be retired.
    3. The new cmdlets which will have same functionalities are Get-MyAnalyticsFeatureConfig and Set-MyAnalyticsFeatureConfig, respectively.
    4. Along with the existing commands, we would like to promote the granular controls (for example admins would be able to enable a particular feature)
 
v2.0.4-Preview2 :
    1. Public Preview version of EXO V2 module which supports PowerShell Core ( Version PowerShell 7+). It contains all the features available in 2.0.3 and below new features.
    2. Manage EXO using Linux devices along with Browser based SSO Authentication for enhanced interactive management experience. No need to enter UserName and password everytime you run the PowerShell script.
    3. Use parameter InlineCredential to pass credentials of Non-MFA accounts on the go without the need of storing credentials in a variable
 
v2.0.3 :
    1. General availability of Certificate Based Authentication feature which enables using Modern Authentication in Unattended Scripting or background automation scenarios.
    2. Certificate Based Authentication accepts Certificate File directly from terminal thus enabling certificate files to be stored in Azure Key Vault and being fetched Just-In-Time for enhanced security. See parameter Certificate in Connect-ExchangeOnline.
    3. Connect with Exchange Online and Security Compliance Center simultaneously in a single PowerShell window.
    4. Ability to restrict the PowerShell cmdlets imported in a session using CommandName parameter, thus reducing memory footprint in case of high usage PowerShell applications.
    5. Get-ExoMailboxFolderPermission now supports ExternalDirectoryObjectID in the Identity parameter.
    6. Optimized latency of first V2 Cmdlet call. (Lab results show first call latency has been reduced from 8 seconds to ~1 seconds. Actual results will depend on result size and Tenant environment.)
 
v2.0.1 :
    1. Support for App-Only Authentication -
        Automate your day-to-day exchange management tasks using app-only authentication. This requires setting up an Azure AD app and connecting to Exchange using certificate. Check out https://aka.ms/AzureAD-app for setting up the App and initial onboarding experience.
        Use below syntax for establishing the connection -
            Connect-ExchangeOnline -AppID ''<AppId of client ID of the AAD app>'' -Organization ''contoso.onmicrosoft.com'' -CertificateFilePath ''<Full path of the certificate>'' -CertificatePassword ''<a secure string password if the certificate file is encrypted>''
 
v1.0.1 :
    1. This is the General Availability (GA) version of EXO PowerShell V2 Module. It is stable and ready for being used in production environments.
    2. Get-ExoMobileDeviceStatistics cmdlet now supports Identity parameter.
    3. Improved reliability of session auto-connect in certain cases where script was executing for ~50minutes and threw "Cmdlet not found" error due to a bug in auto-reconnect logic.
    4. Fixed data-type issues of two commonly used attributed "User" and "MailboxFolderUser" for easy migration of scripts.
    5. Enhanced support for filters as it now supports 4 more operators - endswith, contains, not and notlike support. Please check online documentation for attributes which are not supported in filter string.
 
v0.4578.0 :
    1. Added support for configuring Briefing Email for your organization at the user level with "Set-UserBriefingConfig" and "Get-UserBriefingConfig" cmdlets.
    2. Support for session cleanup using Disconnect-ExchangeOnline cmdlet. This cmdlet is V2 equivalent of "Get-PSSession | Remove-PSSession". In addition to cleaning up session object and local files, it also removes access token from cache which is used for authenticating against V2 cmdlets.
    3. You can now use FolderId as identity parameter in Get-ExoMailboxFolderPermission. You can get folderId using Get-MailboxFolder cmdlet. Below are the supported syntax for getting folder permissions -
        a. Get-MailboxFolderPermission -Identity <UPN>:<Folder-Path>
        b. Get-MailboxFolderPermission -Identity <UPN>:\<Folder-Id>
    4. Improved reliability of Get-ExoMailboxStatistics cmdlet as certain request routing errors which led to failures have been resolved
    5. Optimized memory usage when session is created by re-using any existing module with a new session instead of creating a new one every time session is imported
 
v0.4368.1 :
    1. Added support for Exchange Online Protection (EOP) cmdlets using ''Connect-IPPSSession'' cmdlet
    2. Hide announcement banner using ''ShowBanner'' switch. Default value of this switch is $true. Use below syntax to hide the banner
        "Connect-ExchangeOnline -ShowBanner:$false"
    3. Terminate cmdlet execution on client exception
    4. RPS contained various Complex data types which was consciously not supported in EXO cmdlets for improving the performance. Differences in non-complex Data-types between RPS cmdlets and V2 cmdlets has been resolved to allow seamless migration of management scripts.
 
v0.3582.0 :
    1. Support for prefix during session creation
        i. You can create only 1 session at a time which can have prefixed cmdlets.
       ii. Note that the EXO V2 cmdlets will not be prefixed as they already have a prefix ''EXO'' and hence please refrain from using ''EXO'' as a prefix during session creation.
    2. Use EXO V2 cmdlets even if WinRM Basic Auth is disabled on client machine
    3. Identity parameter for V2 cmdlets now supports name and alias as well
        i. Please note that using alias or name slows down the performance of V2 cmdlets and hence it is not recommended to use this option
    4. Fixed issue where data-type of attributes returned by V2 cmdlet was different from Remote PowerShell cmdlets
    5. Fixed bug - Frequent sessions reconnects issue when Connect-ExchangeOnline was invoked with Credentials or UserPrincipalName
 
v0.3555.1 :
    1. Bug fixes and enhancements.
 
v0.3527.4 :
    1. Updated Get-Help.
 
v0.3527.3 :
    1. Added support for managing Exchange for a different tenant using delegation flow.
        Read more here: https://docs.microsoft.com/en-in/powershell/module/exchange/powershell-v2-module/connect-exchangeonline?view=exchange-ps#parameters
    2. Works in tandem with other PowerShell modules in a single PS window
    3. Added support for positional parameters
    4. Date Time field now supports client locale
    5. Fixed Bug : PSCredential getting empty when passed during Connect-ExchangeOnline
    6. Fixed Bug : Client module used to throw error when filter contained $null
    7. Sessions created internal to EXO V2 Module will now have names (Naming pattern : ExchangeOnlineInternalSession_%SomeNumber% )
    8. Fixed Bug : Remote PowerShell cmdlets resulting into intermittent failure due to difference of time between token expiry and PSSession getting Idle.
    9. Major security update
    10. Bug fixes and enhancements
---------------------------------------------------------------------------------------------
'

    LicenseUri='http://aka.ms/azps-license'
    }
}
}