Skip to content

Commit

Permalink
v3.2.0 (#36)
Browse files Browse the repository at this point in the history
## <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases/tag/v3.2.0" target="_blank">v3.2.0</a> - 2024-05-04
### Changed
- Error handling improvements
  - Complete rewrite of Exchange connection code
  - More resilient Active Directory queries
  - Exchange on-prem occasionally returns security principals without a GUID
- Complete rewrite of code getting UserFriendlyName
- Use GUID instead of PrimarySmtpAddress where possible
- The default export and error files now have the execution timestamp in their filename
- Sample code `Compare-RecipientPermissions.ps1` now uses a faster compare mechanism when possible, and warns when comparison probably needs to much ressources
### Added
- Debug and error files now contain the Exchange GUID and the Directory GUID in addition to the primary SMTP address
### Removed
- Export-RecipientPermissions no longer includes the ExchangeOnlineManagement module. This reduces the size of the package and gives Exchange Online admins control over which version of the module is used.
### Fixed
- Exchange Online: Switched back from EXO cmdlets to regular cmdlets, because of changes in returned properties, which do not allow to uniquely identify a trustee (example: Get-EXORecipientPermission sometimes only returns the trustee's display name, which is not guaranteed to be unique)
  • Loading branch information
GruberMarkus committed May 4, 2024
1 parent e41ce90 commit 41e29a8
Show file tree
Hide file tree
Showing 91 changed files with 2,882 additions and 204,953 deletions.
55 changes: 55 additions & 0 deletions .github/ISSUE_TEMPLATE/100-bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Create a new issue report
description: Create a new issue report for Export-RecipientPermissions.
title: "<a short and pregnant title for your issue>"
body:
- type: markdown
attributes:
value: |
**Thanks for taking the time to fill out this issue report!**
Support in this GitHub repository is free, voluntary and without guaranteed response times.
If you want to prioritize your request, please use [ExplicIT Consulting's **fee-based support**](https://explicitconsulting.at/open-source/Export-RecipientPermissions) instead of this form.
- type: checkboxes
id: usinglatestrelease
attributes:
label: Issue happens in the latest release
description: By submitting this issue, you confirm that the issue happens in the [latest release](https://github.com/GruberMarkus/Export-RecipientPermissions/releases/latest) of Export-RecipientPermissions.
options:
- label: I confirm that the issue happens in the latest release of Export-RecipientPermissions
required: true
- type: checkboxes
id: previousissuesanddocumentation
attributes:
label: Previously solved issues and documentation
description: Before creating a new issue, look through [previously solved issues](https://github.com/GruberMarkus/Export-RecipientPermissions/issues?q=) and the documentation ([README](https://github.com/GruberMarkus/Export-RecipientPermissions) and associated documents).
options:
- label: I have searched through previous issues and documentation, but have not found an answer to my issue
required: true
- type: checkboxes
id: codeofconduct
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/GruberMarkus/Export-RecipientPermissions?tab=coc-ov-file).
options:
- label: I agree to follow this project's Code of Conduct
required: true
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us what you expected and how the problem can be reproduced.
placeholder: Tell us what what happened!
validations:
required: true
- type: textarea
id: verboselog
attributes:
label: Verbose log
description: |
Run Export-RecipientPermissions with the '-verbose' parameter and post the full text output here.
Do not refer to a log file attached in 'What happened?', but paste the text output here.
placeholder: Tell us what Export-RecipientPermissions says!
render: Text
validations:
required: true
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
blank_issues_enabled: false
contact_links:
- name: Prioritized support
url: https://explicitconsulting.at/open-source/export-recipientpermissions/
about: If you want to prioritize your request, please use ExplicIT Consulting's fee-based support instead of this form.
- name: Previously solved issues
url: https://github.com/GruberMarkus/Export-RecipientPermissions/issues?q=
about: Before creating a new issue, look through previous issues.
- name: Documentation
url: https://github.com/GruberMarkus/Export-RecipientPermissions
about: Before creating a new issue, look through documentation (README file and associated documents).
- name: Discussions board
url: https://github.com/GruberMarkus/Export-RecipientPermissions
about: You are welcome to share your experiences with Export-RecipientPermissions, exchange ideas with other users or suggest new features in our discussions board.
- name: Report security vulnerabilities
url: https://github.com/GruberMarkus/Export-RecipientPermissions?tab=security-ov-file
about: Please report security vulnerabilities here.
4 changes: 2 additions & 2 deletions .github/workflows/build, draft release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ jobs:
fetch-depth: 0

- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0.10.2
uses: gittools/actions/gitversion/setup@v1
with:
versionSpec: "5.x"

- name: Determine SemVer
uses: gittools/actions/gitversion/execute@v0.10.2
uses: gittools/actions/gitversion/execute@v1
with:
additionalArguments: '/overrideconfig major-version-bump-message="^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\\([\\w\\s]*\\))?(!:|:.*\\n\\n((.+\\n)+\\n)?BREAKING CHANGE:\\s.+)" /overrideconfig minor-version-bump-message="^(feat)(\\([\\w\\s]*\\))?:" /overrideconfig patch-version-bump-message="^(build|chore|ci|docs|fix|perf|refactor|revert|style|test)(\\([\\w\\s]*\\))?:"'

Expand Down
2 changes: 2 additions & 0 deletions build/build.ps1
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
function main {
Write-Output 'Basics'
$OutputEncoding = [Console]::InputEncoding = [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding

Set-Location $env:GITHUB_WORKSPACE

& choco.exe install pandoc --no-progress
Expand Down
20 changes: 19 additions & 1 deletion docs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!-- omit in toc -->
## **<a href="https://github.com/GruberMarkus/Export-RecipientPermissions" target="_blank"><img src="../src/logo/Export-RecipientPermissions%20Logo.png" width="400" title="Export-RecipientPermissions" alt="Export-RecipientPermissions"></a>**<br>Document, filter and compare Exchange permissions<br><br><a href="https://github.com/GruberMarkus/Export-RecipientPermissions" target="_blank"><img src="https://img.shields.io/github/license/GruberMarkus/Export-RecipientPermissions" alt=""></a> <!--XXXRemoveWhenBuildingXXX<a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases" target="_blank"><img src="https://img.shields.io/badge/this%20release-XXXVersionStringXXX-informational" alt=""></a> XXXRemoveWhenBuildingXXX--> <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases" target="_blank"><img src="https://img.shields.io/github/v/release/GruberMarkus/Export-RecipientPermissions?display_name=tag&include_prereleases&sort=semver&label=latest%20release&color=informational" alt="" data-external="1"></a> <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/issues" target="_blank"><img src="https://img.shields.io/github/issues/GruberMarkus/Export-RecipientPermissions" alt="" data-external="1"></a>
## **<a href="https://github.com/GruberMarkus/Export-RecipientPermissions" target="_blank"><img src="../src/logo/Export-RecipientPermissions%20Logo.png" width="400" title="Export-RecipientPermissions" alt="Export-RecipientPermissions"></a>**<br>Document, filter and compare Exchange permissions<br><br><a href="https://github.com/GruberMarkus/Export-RecipientPermissions" target="_blank"><img src="https://img.shields.io/github/license/GruberMarkus/Export-RecipientPermissions" alt=""></a> <!--XXXRemoveWhenBuildingXXX<a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases" target="_blank"><img src="https://img.shields.io/badge/this%20release-XXXVersionStringXXX-informational" alt=""></a> XXXRemoveWhenBuildingXXX--> <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases" target="_blank"><img src="https://img.shields.io/github/v/release/GruberMarkus/Export-RecipientPermissions?display_name=tag&include_prereleases&sort=semver&label=latest%20release&color=informational" alt="" data-external="1"></a> <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/issues" target="_blank"><img src="https://img.shields.io/github/issues/GruberMarkus/Export-RecipientPermissions" alt="" data-external="1"></a> <a href="https://explicitconsulting.at/open-source/export-recipientpermissions/" target="_blank"><img src="https://img.shields.io/badge/get%20fee--based%20support%20from-ExplicIT%20Consulting-lawngreen?labelColor=deepskyblue" alt="fee-based support by ExplicIT Consulting"></a>

# Changelog
<!--
Expand All @@ -16,6 +16,24 @@ _**Breaking:** Notice about breaking change_
-->


## <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases/tag/v3.2.0" target="_blank">v3.2.0</a> - 2024-05-04
### Changed
- Error handling improvements
- Complete rewrite of Exchange connection code
- More resilient Active Directory queries
- Exchange on-prem occasionally returns security principals without a GUID
- Complete rewrite of code getting UserFriendlyName
- Use GUID instead of PrimarySmtpAddress where possible
- The default export and error files now have the execution timestamp in their filename
- Sample code `Compare-RecipientPermissions.ps1` now uses a faster compare mechanism when possible, and warns when comparison probably needs to much ressources
### Added
- Debug and error files now contain the Exchange GUID and the Directory GUID in addition to the primary SMTP address
### Removed
- Export-RecipientPermissions no longer includes the ExchangeOnlineManagement module. This reduces the size of the package and gives Exchange Online admins control over which version of the module is used.
### Fixed
- Exchange Online: Switched back from EXO cmdlets to regular cmdlets, because of changes in returned properties, which do not allow to uniquely identify a trustee (example: Get-EXORecipientPermission sometimes only returns the trustee's display name, which is not guaranteed to be unique)


## <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases/tag/v3.1.1" target="_blank">v3.1.1</a> - 2023-10-12
### Changed
- Update ExchangeOnlineManagement module to v3.4.0
Expand Down
2 changes: 1 addition & 1 deletion docs/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!-- omit in toc -->
## **<a href="https://github.com/GruberMarkus/Export-RecipientPermissions" target="_blank"><img src="../src/logo/Export-RecipientPermissions%20Logo.png" width="400" title="Export-RecipientPermissions" alt="Export-RecipientPermissions"></a>**<br>Document, filter and compare Exchange permissions<br><br><a href="https://github.com/GruberMarkus/Export-RecipientPermissions" target="_blank"><img src="https://img.shields.io/github/license/GruberMarkus/Export-RecipientPermissions" alt=""></a> <!--XXXRemoveWhenBuildingXXX<a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases" target="_blank"><img src="https://img.shields.io/badge/this%20release-XXXVersionStringXXX-informational" alt=""></a> XXXRemoveWhenBuildingXXX--> <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases" target="_blank"><img src="https://img.shields.io/github/v/release/GruberMarkus/Export-RecipientPermissions?display_name=tag&include_prereleases&sort=semver&label=latest%20release&color=informational" alt="" data-external="1"></a> <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/issues" target="_blank"><img src="https://img.shields.io/github/issues/GruberMarkus/Export-RecipientPermissions" alt="" data-external="1"></a>
## **<a href="https://github.com/GruberMarkus/Export-RecipientPermissions" target="_blank"><img src="../src/logo/Export-RecipientPermissions%20Logo.png" width="400" title="Export-RecipientPermissions" alt="Export-RecipientPermissions"></a>**<br>Document, filter and compare Exchange permissions<br><br><a href="https://github.com/GruberMarkus/Export-RecipientPermissions" target="_blank"><img src="https://img.shields.io/github/license/GruberMarkus/Export-RecipientPermissions" alt=""></a> <!--XXXRemoveWhenBuildingXXX<a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases" target="_blank"><img src="https://img.shields.io/badge/this%20release-XXXVersionStringXXX-informational" alt=""></a> XXXRemoveWhenBuildingXXX--> <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases" target="_blank"><img src="https://img.shields.io/github/v/release/GruberMarkus/Export-RecipientPermissions?display_name=tag&include_prereleases&sort=semver&label=latest%20release&color=informational" alt="" data-external="1"></a> <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/issues" target="_blank"><img src="https://img.shields.io/github/issues/GruberMarkus/Export-RecipientPermissions" alt="" data-external="1"></a> <a href="https://explicitconsulting.at/open-source/export-recipientpermissions/" target="_blank"><img src="https://img.shields.io/badge/get%20fee--based%20support%20from-ExplicIT%20Consulting-lawngreen?labelColor=deepskyblue" alt="get fee-based support from ExplicIT Consulting"></a>

# Contributor Covenant Code of Conduct

Expand Down
4 changes: 1 addition & 3 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!-- omit in toc -->
## **<a href="https://github.com/GruberMarkus/Export-RecipientPermissions" target="_blank"><img src="../src/logo/Export-RecipientPermissions%20Logo.png" width="400" title="Export-RecipientPermissions" alt="Export-RecipientPermissions"></a>**<br>Document, filter and compare Exchange permissions<br><br><a href="https://github.com/GruberMarkus/Export-RecipientPermissions" target="_blank"><img src="https://img.shields.io/github/license/GruberMarkus/Export-RecipientPermissions" alt=""></a> <!--XXXRemoveWhenBuildingXXX<a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases" target="_blank"><img src="https://img.shields.io/badge/this%20release-XXXVersionStringXXX-informational" alt=""></a> XXXRemoveWhenBuildingXXX--> <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases" target="_blank"><img src="https://img.shields.io/github/v/release/GruberMarkus/Export-RecipientPermissions?display_name=tag&include_prereleases&sort=semver&label=latest%20release&color=informational" alt="" data-external="1"></a> <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/issues" target="_blank"><img src="https://img.shields.io/github/issues/GruberMarkus/Export-RecipientPermissions" alt="" data-external="1"></a>
## **<a href="https://github.com/GruberMarkus/Export-RecipientPermissions" target="_blank"><img src="../src/logo/Export-RecipientPermissions%20Logo.png" width="400" title="Export-RecipientPermissions" alt="Export-RecipientPermissions"></a>**<br>Document, filter and compare Exchange permissions<br><br><a href="https://github.com/GruberMarkus/Export-RecipientPermissions" target="_blank"><img src="https://img.shields.io/github/license/GruberMarkus/Export-RecipientPermissions" alt=""></a> <!--XXXRemoveWhenBuildingXXX<a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases" target="_blank"><img src="https://img.shields.io/badge/this%20release-XXXVersionStringXXX-informational" alt=""></a> XXXRemoveWhenBuildingXXX--> <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/releases" target="_blank"><img src="https://img.shields.io/github/v/release/GruberMarkus/Export-RecipientPermissions?display_name=tag&include_prereleases&sort=semver&label=latest%20release&color=informational" alt="" data-external="1"></a> <a href="https://github.com/GruberMarkus/Export-RecipientPermissions/issues" target="_blank"><img src="https://img.shields.io/github/issues/GruberMarkus/Export-RecipientPermissions" alt="" data-external="1"></a> <a href="https://explicitconsulting.at/open-source/export-recipientpermissions/" target="_blank"><img src="https://img.shields.io/badge/get%20fee--based%20support%20from-ExplicIT%20Consulting-lawngreen?labelColor=deepskyblue" alt="get fee-based support from ExplicIT Consulting"></a>

# Welcome! <!-- omit in toc -->
Thank you very much for your interest in Export-RecipientPermissions.
Expand Down Expand Up @@ -32,8 +32,6 @@ Dear businesses, please don't forget:
- Invest in the open-source projects you depend on. Contributors are working behind the scenes to make open-source better for everyone - give them the help and recognition they deserve.
- Sponsor the open-source software your team has built its business on. Fund the projects that make up your software supply chain to improve its performance, reliability, and stability.
## 2.2. Code refactoring
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.
# 3. Branches
The default branch is named '`main`'. It contains the source of the latest stable release.
Expand Down
Loading

0 comments on commit 41e29a8

Please sign in to comment.