OffboardingManager

AD User Offboarding Tool

CodeFactor License Version PowerShell

Platform Support Architecture

AD User Offboarding Tool

Table of Contents

About

A PowerShell-based GUI tool for managing user offboarding in both Active Directory and Office 365 environments. Designed to work across multiple Windows architectures including x86, x64, and ARM. Features a demo mode for testing and training purposes.

This script is actively being developed, with frequent updates and new features. And offcourse - sometimes some features might not be fully tested yet, if you find something don’t hesitate to create an issue.

Architecture Support

The tool automatically adapts to your system architecture:

Use of LDAPS can be set in settings

Features

On-Premises Features

O365 Features

Reporting Capabilities

Demo Mode

Test the application’s functionality without affecting your AD environment:

Screenshots

Screenshots may be outdated due to continuous development!

Login Screen

Login Screen

onprem Screen

On Premise options

O365 Screen

O365 Options

Report Screen

Reporting

Settings Screen

Settings

Settings Workflow Screen

Settings Workflow crud

Prerequisites

Installation

# Clone the repository
git clone https://github.com/CreativeAcer/OffboardingManager.git

# Navigate to the directory
cd OffboardingManager

# Optional: Create desktop shortcut
.\Create-Shortcut.bat
# This will automatically create a shortcut on your desktop for you

Development Status

Backlog

These items might change the scope of this project

General functionality

Teams & SharePoint

License Management

Security & Compliance

Device Management

Automation Features

Contributing

Feel free to submit issues, fork the repository and create pull requests for any improvements.

Usage

  1. Launch the application using Start-Offboarding.ps1 or the desktop shortcut
  2. Login with AD credentials or select Demo Mode
  3. Select a user from the list
  4. Choose operations from available tabs:
    • On-Premises Tasks
    • Disable AD account
    • Remove group memberships
    • Move to disabled OU
    • Set expiration date - O365 Management
    • Connect to Microsoft Graph
    • Mailbox Management
    • Teams and SharePoint Management
    • License Management
    • View license status - Report Generation
    • Generate activity reports
    • Export license reports
  5. Execute selected tasks
  6. Review real-time feedback
  7. Export reports as needed

Reporting System

Available Reports

Report Features

Export Options

Project Structure

\ADUserOffboarding\
β”œβ”€β”€ Create-FolderstructureReport.ps1
β”œβ”€β”€ Create-OffboardingShortcut.ps1
β”œβ”€β”€ Create-Shortcut.bat
β”œβ”€β”€ FolderStructure.txt
β”œβ”€β”€ Launch-Offboarding.ps1
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
β”œβ”€β”€ Start-Offboarding.ps1
β”œβ”€β”€ Test-LDAPSConnection.ps1
β”œβ”€β”€ Config/
β”‚   β”œβ”€β”€ Colors.ps1
β”‚   β”œβ”€β”€ Fonts.ps1
β”‚   β”œβ”€β”€ Settings.json
β”‚   └── Settings.ps1
β”œβ”€β”€ Docs/
β”‚   β”œβ”€β”€ Icon/
β”‚   β”‚   β”œβ”€β”€ offboarding-icon-color.ico
β”‚   β”‚   β”œβ”€β”€ offboarding-icon-color.svg
β”‚   β”‚   β”œβ”€β”€ offboarding-icon.ico
β”‚   β”‚   └── offboarding-icon.svg
β”‚   └── Images/
β”‚   β”‚   β”œβ”€β”€ Login.png
β”‚   β”‚   β”œβ”€β”€ MainWindow.png
β”‚   β”‚   β”œβ”€β”€ O365.png
β”‚   β”‚   β”œβ”€β”€ OnPrem.png
β”‚   β”‚   β”œβ”€β”€ reporting.png
β”‚   β”‚   β”œβ”€β”€ Settings-Workflow.png
β”‚   β”‚   └── Settings.png
β”œβ”€β”€ Functions/
β”‚   β”œβ”€β”€ Core/
β”‚   β”‚   β”œβ”€β”€ Environment.ps1
β”‚   β”‚   β”œβ”€β”€ Dependencies/
β”‚   β”‚   β”‚   └── DotNetVersionCheck.ps1
β”‚   β”‚   β”œβ”€β”€ Logging/
β”‚   β”‚   β”‚   β”œβ”€β”€ Write-ActivityLog.ps1
β”‚   β”‚   β”‚   └── Write-Errorlog.ps1
β”‚   β”œβ”€β”€ Data/
β”‚   β”‚   β”œβ”€β”€ ADModule/
β”‚   β”‚   β”‚   β”œβ”€β”€ ADConnection.ps1
β”‚   β”‚   β”‚   └── ADUsers.ps1
β”‚   β”‚   β”œβ”€β”€ LDAP/
β”‚   β”‚   β”‚   β”œβ”€β”€ LDAPConnection.ps1
β”‚   β”‚   β”‚   └── LDAPUsers.ps1
β”‚   β”‚   β”œβ”€β”€ Mock/
β”‚   β”‚   β”‚   └── MockData.ps1
β”‚   β”‚   └── O365/
β”‚   β”‚   β”‚   β”œβ”€β”€ Connect-MgGraphWithDeviceCode.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ Connect-O365.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ Show-DeviceCodeInstructions.ps1
β”‚   β”‚   β”‚   └── Start-AuthenticationProcess.ps1
β”‚   β”œβ”€β”€ Reports/
β”‚   β”œβ”€β”€ UI/
β”‚   β”‚   β”œβ”€β”€ EasterEgg.ps1
β”‚   β”‚   β”œβ”€β”€ Handlers/
β”‚   β”‚   β”‚   β”œβ”€β”€ O365Handlers.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ OnPremHandlers.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ ReportHandlers.ps1
β”‚   β”‚   β”‚   └── SettingsHandler.ps1
β”‚   β”‚   β”œβ”€β”€ O365/
β”‚   β”‚   β”‚   β”œβ”€β”€ Initialize-O365Tab.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ Start-O365Tasks.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ Tasks/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Get-O365Status.ps1
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Set-LicenseTasks.ps1
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Set-MailboxTasks.ps1
β”‚   β”‚   β”‚   β”‚   └── Set-TeamsTasks.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ UI/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Update-ForwardingList.ps1
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Update-LicenseList.ps1
β”‚   β”‚   β”‚   β”‚   └── Update-TeamsOwnerList.ps1
β”‚   β”‚   β”œβ”€β”€ Services/
β”‚   β”‚   β”‚   └── O365/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Connect-O365.ps1
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ LicenseManagement.ps1
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ MailboxManagement.ps1
β”‚   β”‚   β”‚   β”‚   └── TeamsManagement.ps1
β”‚   β”‚   β”œβ”€β”€ Shared/
β”‚   β”‚   β”‚   β”œβ”€β”€ LoadingScreen.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ XamlHelper.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ Controls/
β”‚   β”‚   β”‚   β”‚   └── Update-WorkflowDropdowns.ps1
β”‚   β”‚   β”œβ”€β”€ Windows/
β”‚   β”‚   β”‚   β”œβ”€β”€ Login/
β”‚   β”‚   β”‚   β”‚   └── LoginDialog.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ Main/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Initialize-MainWindow.ps1
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ MainWindow.ps1
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Show-UserDetails.ps1
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Update-SelectedUser.ps1
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Update-UserList.ps1
β”‚   β”‚   β”‚   β”‚   └── Filter-UserList.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ Reports/
β”‚   β”‚   β”‚   β”‚   └── Initialize-ReportsTab.ps1
β”‚   β”‚   β”‚   └── Settings/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Initialize-WorkflowSettingsTab.ps1
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ SettingsHandler.ps1
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Show-SettingsWindow.ps1
β”‚   β”‚   β”‚   β”‚   └── WorkflowTaskSettings.ps1
β”‚   β”‚   β”œβ”€β”€ Workflow/
β”‚   β”‚   β”‚   └── Initialize-WorkflowTab.ps1
β”‚   β”œβ”€β”€ Utilities/
β”‚   β”‚   β”œβ”€β”€ Converters.ps1
β”‚   β”‚   └── PathUtils.ps1
β”‚   └── Workflow/
β”‚   β”‚   β”œβ”€β”€ Start-OffboardingWorkflow.ps1
β”‚   β”‚   β”œβ”€β”€ WorkflowTasks.ps1
β”‚   β”‚   β”œβ”€β”€ Configuration/
β”‚   β”‚   β”‚   β”œβ”€β”€ Get-TaskSettings.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ Get-WorkflowConfiguration.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ Import-WorkflowConfiguration.ps1
β”‚   β”‚   β”‚   β”œβ”€β”€ Remove-WorkflowConfiguration.ps1
β”‚   β”‚   β”‚   └── Save-WorkflowConfiguration.ps1
β”‚   β”‚   β”œβ”€β”€ Tasks/
β”‚   β”‚   β”‚   └── Get-WorkflowTasks.ps1
β”œβ”€β”€ Logs/
β”‚   β”œβ”€β”€ error_log.txt
β”‚   β”œβ”€β”€ OffboardingActivities/
β”‚   β”‚   └── 20250107.log
β”œβ”€β”€ Reports/
└── XAML/
    β”œβ”€β”€ Components/
    β”‚   β”œβ”€β”€ DeviceCodeWindow.xaml
    β”‚   └── LoadingWindow.xaml
    └── Windows/
        β”œβ”€β”€ LoginWindow.xaml
        β”œβ”€β”€ MainWindow.xaml
        └── SettingsWindow.xaml

Acknowledgments