First commit

This commit is contained in:
2025-09-16 07:46:50 +02:00
commit f668870413
6 changed files with 891 additions and 0 deletions

58
Readme.md Normal file
View File

@@ -0,0 +1,58 @@
# Document Conditional Access with PowerShell
[![PSGallery Version](https://img.shields.io/powershellgallery/v/Invoke-ConditionalAccessDocumentation.svg?style=flat-square&label=PSGallery%20Version)](https://www.powershellgallery.com/packages/Invoke-ConditionalAccessDocumentation) [![PSGallery Downloads](https://img.shields.io/powershellgallery/dt/Invoke-ConditionalAccessDocumentation?style=flat-square&label=PSGallery%20Downloads)](https://www.powershellgallery.com/packages/Invoke-ConditionalAccessDocumentation)
![GitHub](https://img.shields.io/github/license/nicolonsky/conditionalaccessdocumentation?style=flat-square)
![GitHub Release Date](https://img.shields.io/github/release-date/nicolonsky/conditionalaccessdocumentation?style=flat-square)
This PowerShell script documents your Entra ID Conditional Access policies while translating directory object IDs of targeted users, groups and apps to readable names. This is an extended version of Daniel Chronlunds [DCToolbox](https://github.com/DanielChronlund/DCToolbox). The script exports all data as a csv file which can be pretty formatted as excel workbook.
1. Install this script from the PowerShell gallery (dependent modules are automatically installed):
* `Install-Script -Name Invoke-ConditionalAccessDocumentation -Scope CurrentUser`
2. Connect to Microsoft Graph
* Grant initial admin consent: `Connect-MgGraph -Scopes "Application.Read.All", "Group.Read.All", "Policy.Read.All", "RoleManagement.Read.Directory", "User.Read.All" -ContextScope Process`
* After initial admin consent has been granted you can connect with: `Connect-MgGraph` for subsequent usage
## Usage
Run the script with the following options:
- Default CSV export:
```powershell
.\Invoke-ConditionalAccessDocumentation.ps1
```
- Export with Excel:
```powershell
.\Invoke-ConditionalAccessDocumentation.ps1 -ExportExcel
```
- Export with Excel to a custom path:
```powershell
.\Invoke-ConditionalAccessDocumentation.ps1 -ExportExcel -ExcelPath "C:\Path\To\Save\ConditionalAccess.xlsx"
```
- Use multi-line output (default is single-line):
```powershell
.\Invoke-ConditionalAccessDocumentation.ps1 -MultiLine
```
4. (Optional) Pretty format the csv with excel & save it as excel workbook
* ![Example](https://raw.githubusercontent.com/nicolonsky/ConditionalAccessDocumentation/master/Example/Example.png)
## New Features
- Automatic installation of required PowerShell modules if they are not present.
- CSV export with proper delimiter and encoding to ensure compatibility and readability.
- Excel export option that creates a workbook with multiple worksheets including a Master sheet, Summary sheet, and individual sheets for each Conditional Access policy.
- Readable two-column layout in the Excel export for enhanced clarity and presentation.
- Translation of directory object IDs (users, groups, apps) to human-readable names for easier analysis.