Skip to content

Commit

Permalink
v3.0.0 (#24)
Browse files Browse the repository at this point in the history
## <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases/tag/v3.0.0" target="_blank">v3.0.0</a> - 2023-01-13
  _**Breaking:** Microsoft removes support for Remote PowerShell connections to Exchange Online starting June 1, 2023. See https://techcommunity.microsoft.com/t5/exchange-team-blog/announcing-deprecation-of-remote-powershell-rps-protocol-in/ba-p/3695597 for details.  
  Export-RecipientPermissions no longer uses Remote PowerShell to connect to Exchange Online and to Exchange on-premises. This brings some possibly breaking changes, which are detailed in the following release notes._
### Changed
- **Breaking:** Switching from Remote PowerShell session to local PowerShell session due Microsoft disabling Remote PowerShell in Exchange Online
  - Export-RecipientPermission will require more local resources (CPU, RAM, network) and will take longer to complete because operations previously handled on the server side now need to be handled on the client side
  - The variables '`$Grantor`' and '`$Trustee`' lose some sub attributes, so you may have to adopt your '`GrantorFilter`' and '`TrusteeFilter`' code:
    - '`.RecipientType.Value`' is now '`.RecipientType`'
    - '`.RecipientTypeDetails.Value`' is now '`.RecipientTypeDetails`'
    - '`.PrimarySmtpAddress`' no longer has the sub attributes .Local, .Domain and .Address
      - All the data formerly held in the sub attributes is still there, as .PrimarySmtpAddress is in the 'local@domain' format
    - '`.EmailAddresses`' (an array) no longer has the sub attributes .PrefixString, .IsPrimaryAddress, .SmtpAddress and .ProxyAddressString
      - All the data formerly held in the sub attributes is still there, as .EmailAddress is in the 'prefix:local@domain' format
    - On-prem only:
      - '`.Identity`' is now the canonical name (CN) only and no longer has the sub attributes .DomainId and .Parent
        - All the data formerly held in the sub attributes is still there, as .Identity is in the 'example.com/OU1/OU2/ObjectA' format  
  - Reduced the default value of '`ParallelJobsExchange`' from '`$ExchangeConnectionUriList.count * 3`' to '`$ExchangeConnectionUriList.count`' as local Exchange PowerShell sessions are not as stable as Remote PowerShell sessions 
- Adopted sample code and documentation to reflect changes in the '`$Grantor`' and '`$Trustee`' variables
- Use Get-EXO* cmdlets in Exchange Online where possible
- Upgrade to ExchangeOnlineManagement v3.1.0
### Added
- New export parameters: '`ExportModerators`', '`ExportRequireAllSendersAreAuthenticated`', '`ExportAcceptMessagesOnlyFrom`', '`ExportResourceDelegates`'. See '`README`' for details.
- New FAQ in '`README`': 'I receive an error message when connecting to Exchange on premises'
### Fixed
- When importing UserFriendlyNames, errors were not written to the error file because of a missing encoding variable
- Only the first ManagedBy entry for reach recipient was exported correctly, the following entries were missing trustee data
  • Loading branch information
GruberMarkus authored Jan 13, 2023
1 parent 2b92fa3 commit 68cc263
Show file tree
Hide file tree
Showing 43 changed files with 6,541 additions and 3,167 deletions.
28 changes: 28 additions & 0 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,34 @@
### Fixed
-->


## <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases/tag/v3.0.0" target="_blank">v3.0.0</a> - 2023-01-13
_**Breaking:** Microsoft removes support for Remote PowerShell connections to Exchange Online starting June 1, 2023. See https://techcommunity.microsoft.com/t5/exchange-team-blog/announcing-deprecation-of-remote-powershell-rps-protocol-in/ba-p/3695597 for details.
Export-RecipientPermissions no longer uses Remote PowerShell to connect to Exchange Online and to Exchange on-premises. This brings some possibly breaking changes, which are detailed in the following release notes._
### Changed
- **Breaking:** Switching from Remote PowerShell session to local PowerShell session due Microsoft disabling Remote PowerShell in Exchange Online
- Export-RecipientPermission will require more local resources (CPU, RAM, network) and will take longer to complete because operations previously handled on the server side now need to be handled on the client side
- The variables '`$Grantor`' and '`$Trustee`' lose some sub attributes, so you may have to adopt your '`GrantorFilter`' and '`TrusteeFilter`' code:
- '`.RecipientType.Value`' is now '`.RecipientType`'
- '`.RecipientTypeDetails.Value`' is now '`.RecipientTypeDetails`'
- '`.PrimarySmtpAddress`' no longer has the sub attributes .Local, .Domain and .Address
- All the data formerly held in the sub attributes is still there, as .PrimarySmtpAddress is in the 'local@domain' format
- '`.EmailAddresses`' (an array) no longer has the sub attributes .PrefixString, .IsPrimaryAddress, .SmtpAddress and .ProxyAddressString
- All the data formerly held in the sub attributes is still there, as .EmailAddress is in the 'prefix:local@domain' format
- On-prem only:
- '`.Identity`' is now the canonical name (CN) only and no longer has the sub attributes .DomainId and .Parent
- All the data formerly held in the sub attributes is still there, as .Identity is in the 'example.com/OU1/OU2/ObjectA' format
- Reduced the default value of '`ParallelJobsExchange`' from '`$ExchangeConnectionUriList.count * 3`' to '`$ExchangeConnectionUriList.count`' as local Exchange PowerShell sessions are not as stable as Remote PowerShell sessions
- Adopted sample code and documentation to reflect changes in the '`$Grantor`' and '`$Trustee`' variables
- Use Get-EXO* cmdlets in Exchange Online where possible
- Upgrade to ExchangeOnlineManagement v3.1.0
### Added
- New export parameters: '`ExportModerators`', '`ExportRequireAllSendersAreAuthenticated`', '`ExportAcceptMessagesOnlyFrom`', '`ExportResourceDelegates`'. See '`README`' for details.
- New FAQ in '`README`': 'I receive an error message when connecting to Exchange on premises'
### Fixed
- When importing UserFriendlyNames, errors were not written to the error file because of a missing encoding variable
- Only the first ManagedBy entry for reach recipient was exported correctly, the following entries were missing trustee data

## <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases/tag/v2.3.1" target="_blank">v2.3.1</a> - 2022-11-28
### Added
- New FAQ in '`README`': 'How to export permissions for specific public folders?'
Expand Down
12 changes: 0 additions & 12 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ I'm not a professional developer - if you are one and you notice something negat
- [2. Contribution opportunities](#2-contribution-opportunities)
- [2.1. Sponsoring](#21-sponsoring)
- [2.2. Code refactoring](#22-code-refactoring)
- [2.3. Combine on-prem and cloud results](#23-combine-on-prem-and-cloud-results)
- [2.4. Adopt Exchange Online connection method](#24-adopt-exchange-online-connection-method)
- [3. Branches](#3-branches)
- [4. Development process](#4-development-process)
- [5. Commit messages](#5-commit-messages)
Expand All @@ -37,16 +35,6 @@ Dear businesses, please don't forget:
I'm not a professional developer, but a hobbyist scripter, and the code looks like that.

There are optimization opportunities in error handling, de-duplicating code with functions, applying PowerShell best practices, and more.
## 2.3. Combine on-prem and cloud results
Currently, Export-RecipientPermissions connects either to an on-prem instance or a cloud instance of Exchange.

A future release will be able to connect to both environments and combine these two data sources.
## 2.4. Adopt Exchange Online connection method
The script still connects to Exchange Online by using the classic New-PSSession construct.

Connect-ExchangeOnline clearly is the future. Unfortunately, it's connections to Exchange Online have shown to be error prone when used in parallel jobs, even for small environments.

As soon as these problems are solved, Export-RecipientPermissions will switch to Connect-ExchangeOnline.
# 3. Branches
The default branch is named '`main`'. It contains the source of the latest stable release.

Expand Down
Loading

0 comments on commit 68cc263

Please sign in to comment.