Releases: ugurkocde/DeviceOffboardingManager
Version 0.2.2
Version 0.2.2 - 7/26/2025
- Fixed Autopilot Device Removal by Serial Number: Enhanced offboarding process to properly retrieve and use serial numbers for Autopilot device removal (Issue #45)
- Captures serial number from Intune device data during offboarding
- Extracts serial number from Entra ID device physicalIds when available
- Ensures devices searched by name can be properly removed from Autopilot
- Fixes "BadRequest" API error when searching Autopilot devices by displayName
- Fixed Critical Error with Duplicate Entra ID Devices: Enhanced offboarding to handle duplicate device records in Entra ID (Issue #44)
- Processes all duplicate devices instead of just the first one
- Validates serial numbers to avoid deleting wrong duplicates
- Provides detailed logging for each duplicate device processed
- Reports partial success when some duplicates fail to delete
- Prevents critical errors when multiple devices share the same name
- Export Selected Devices to CSV: Added new feature to export only selected device names to CSV (Issue #43)
- Added "Export Selected" button next to existing "Export Results" button
- Exports device names along with all metadata (serial number, OS, user, service status)
- Button is enabled/disabled based on device selection
- Allows easy transfer of device information to other systems for cleanup
- Maintains consistent export format with existing export functionality
- Enhanced Dialog Error Handling: Added comprehensive error handling for all dialog windows (Issue #42)
- Added null checks before calling ShowDialog() on all windows
- Wrapped all ShowDialog() calls in try-catch blocks
- Added error handling for window creation with XamlReader.Load()
- Provides user-friendly error messages when dialogs fail to load
- Prevents "null-valued expression" errors during offboarding
Full Changelog: v0.2.1...v0.2.2
Version 0.2.1
Version 0.2.1 - 6/29/2025
Highlights
This release includes several important bug fixes and UI enhancements to improve the device management experience.
What's Changed
-
Fixed Autopilot Device Removal: Enhanced Autopilot device removal to use displayName as fallback when serial number is unavailable (Issue #34)
- Added search by displayName for Autopilot devices
- Improved handling of pre-provisioned Autopilot devices that may not be in Intune
- Better error messages indicating why removal might fail
-
Fixed CSV Bulk Import: CSV bulk import now automatically triggers device search after import (Issue #32)
- Created centralized
Invoke-DeviceSearchfunction for consistent search behavior - Added automatic search execution after CSV file selection
- Improved validation for empty files and whitespace
- Created centralized
-
Enhanced Device Search: Improved device search to handle Autopilot-only devices (Related to Issue #34)
- Devices existing only in Autopilot service are now properly displayed
- Serial numbers are populated from any available source (Intune or Autopilot)
- Fixed handling of devices that exist in Autopilot but not in Intune
-
Input Validation: Added trimming of newlines and whitespace from search input to prevent accidental multi-line entries (Related to Issue #34)
-
Enhanced Bulk Import UI: Replaced file dialog with professional modal interface for bulk device import
- Added visual CSV template with example device identifiers
- Implemented downloadable template CSV functionality
- Added file preview showing first 10 devices before import
- Improved error handling with clear visual feedback
- Enhanced user experience with modern, consistent styling
-
Dynamic Version Display: Added automatic version number display in window title
-
Improved Changelog Display: Enhanced markdown rendering in changelog modal
- Added support for bold text formatting
- Added support for
inline codeformatting - Properly handles nested list indentation
- Mixed formatting (bold, italic, code) now renders correctly
- Improved visual styling with appropriate fonts and colors
-
Fixed Date Parsing Issues: Implemented culture-invariant date parsing across the entire application
- Fixed Autopilot last contact date showing 1/1/0001 12:00AM (Issue #31)
- Fixed Playbook_1.ps1 date parsing error with culture-specific formats (Issue #30)
- Fixed Dashboard date parsing errors causing multiple log entries (Issue #16)
- Added
ConvertTo-SafeDateTimehelper function for consistent date handling - Updated all playbooks to use culture-invariant date parsing
- Replaced all DateTime::Parse calls with safe parsing that handles multiple formats
Full Changelog
Version 0.2
Device Offboarding Manager v0.2
🚀 Major Improvements
Bulk Offboarding Enhancement
- Single confirmation dialog for all devices - no more clicking OK for each device (fixes #28)
- Service selection checkboxes - choose which services to remove devices from (Entra ID, Intune, Autopilot) (fixes #25)
- Comprehensive summary showing results for all devices with success/failure statistics
Export to CSV Feature
- Export search results, playbook results, and dashboard data (fixes #20)
- All exports use a consistent file save dialog
- Includes all device details in a clean CSV format
Interactive Dashboard
- All dashboard cards are now clickable:
- Total device cards (Intune, Autopilot, Entra ID)
- Stale device cards (30/90/180 days)
- Personal and Corporate device cards
- Click any card to view the full device list with export capability
🔧 Fixes
Permission Issues
- Added missing
BitlockerKey.Read.Allpermission to prerequisites (fixes #24) - Updated Entra ID permission from
Device.Read.AlltoDevice.ReadWrite.All(fixes #23) - Added specific error messages when permissions are missing
Playbook Functionality
- Fixed playbook downloads - all 5 playbooks now work correctly (fixes #26)
- Enabled previously disabled playbooks:
- Intune Devices Not in Autopilot
- Corporate Device Inventory
- Personal Device Inventory
- Stale Device Report
📋 Technical Changes
Updated Prerequisites
Required Microsoft Graph API Permissions:
- Device.ReadWrite.All ← Updated
- BitlockerKey.Read.All ← New
New Functions
Export-DeviceListToCSV- Reusable export functionShow-OffboardingSummary- Results dialog for bulk operationsShow-DashboardCardResults- Dashboard drilldown functionality
🔄 Upgrade
Install-Script DeviceOffboardingManager -Force