ugurkocde / IntuneAssignmentChecker

https://intuneassignmentchecker.ugurkoc.de/
MIT License
107 stars 13 forks source link

πŸ”Intune Assignment Checker

Twitter Follow LinkedIn Newsletter License

IntuneAssignmentChecker_Header

πŸ“‘ Table of Contents

πŸš€ Quick Start

# Install Microsoft Graph PowerShell SDK
Install-Module Microsoft.Graph.Authentication -Scope CurrentUser

# Download and run the script
.\IntuneAssignmentChecker_v2.ps1

✨ Features

πŸŽ₯ Demo

πŸ“‹ Prerequisites

Required PowerShell Modules

Required Permissions

Your Entra ID application registration needs these permissions: Permission Type Description
User.Read.All Application Read all users' full profiles
Group.Read.All Application Read all groups
Device.Read.All Application Read all devices
DeviceManagementApps.Read.All Application Read Microsoft Intune apps
DeviceManagementConfiguration.Read.All Application Read Microsoft Intune device configuration and policies
DeviceManagementManagedDevices.Read.All Application Read Microsoft Intune devices

πŸ” Authentication Options

Option 1: Certificate-Based Authentication (Recommended for automation)

Follow these steps if you want to use certificate authentication with an app registration:

  1. Create an Entra ID App Registration:

    • Navigate to Azure Portal > Entra ID > App Registrations
    • Click "New Registration"
    • Name your application (e.g., "IntuneAssignmentChecker")
    • Select "Accounts in this organizational directory only"
    • Click "Register"
  2. Grant required Application permissions:

    • In your app registration, go to "API Permissions"
    • Click "Add a permission" > "Microsoft Graph"
    • Select "Application permissions"
    • Add all required permissions listed in Prerequisites
    • Click "Grant admin consent"
  3. Create and configure certificate authentication:

    # Create self-signed certificate
    New-SelfSignedCertificate `
       -Subject "CN=IntuneAssignmentChecker" `
       -CertStoreLocation "cert:\CurrentUser\My" `
       -NotAfter (Get-Date).AddYears(2) `
       -KeySpec Signature `
       -KeyExportPolicy Exportable
    
    # Export the certificate
    $cert = Get-ChildItem Cert:\CurrentUser\My | Where-Object {$_.Subject -like "*IntuneAssignmentChecker*"}
    Export-Certificate -Cert $cert -FilePath "C:\temp\IntuneAssignmentChecker.cer"
  4. Upload certificate to your app registration:

    • In Azure Portal, go to your app registration
    • Click "Certificates & secrets"
    • Select "Certificates"
    • Click "Upload certificate"
    • Upload the .cer file you exported (C:\temp\IntuneAssignmentChecker.cer)
  5. Configure the script with your app details:

    # Update these values in the script
    $appid = '<YourAppIdHere>'           # Application (Client) ID
    $tenantid = '<YourTenantIdHere>'     # Directory (Tenant) ID
    $certThumbprint = '<YourThumbprint>' # Certificate Thumbprint

Option 2: Interactive Authentication (Simpler setup)

If you prefer not to set up an app registration, you can use interactive authentication:

You can just run the script without any changes. It will ask if you want to use interactive authentication where you will type "y" and press enter.

This will prompt you to sign in with your credentials when running the script. The permissions will be based on your user account's roles and permissions in Entra ID.

Which Option Should I Choose?

Note: Keep your certificate and app credentials secure! Anyone with access to these can access your Intune environment with the configured permissions.

πŸ“– Usage

The script provides a comprehensive menu-driven interface with the following options:

🎯 Assignment Checks

  1. Check User(s) Assignments

    • View all policies and apps assigned to specific users
    • Supports checking multiple users (comma-separated)
    • Shows direct and group-based assignments
  2. Check Group(s) Assignments

    • View all policies and apps assigned to specific groups
    • Supports checking multiple groups
    • Shows assignment types (Include/Exclude)
  3. Check Device(s) Assignments

    • View all policies and apps assigned to specific devices
    • Supports checking multiple devices
    • Shows inherited assignments from device groups

πŸ“‹ Policy Overview

  1. Show All Policies and Their Assignments

    • Comprehensive view of all Intune policies
    • Grouped by policy type and platform
    • Includes assignment details
  2. Show All 'All Users' Assignments

    • Lists policies assigned to all users
    • Includes apps and configurations
    • Helps identify broad-scope policies
  3. Show All 'All Devices' Assignments

    • Lists policies assigned to all devices
    • Shows platform-specific assignments
    • Identifies universal device policies

βš™οΈ Advanced Options

  1. Search for Assignments by Setting Name

    • Search across all policy types
    • Find specific settings or configurations
    • Includes partial name matching
  2. Show Policies Without Assignments

    • Identifies unassigned policies
    • Grouped by policy type
    • Helps clean up unused policies
  3. Check for Empty Groups in Assignments

    • Finds assignments to empty groups
    • Helps identify ineffective policies
    • Supports CSV export of findings

πŸ› οΈ System Options

All operations support CSV export for detailed analysis and reporting.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.