IROD.psm1
|
# IROD PowerShell Module # Intune Remediation On Demand # Module-level variables $script:GraphBaseUrl = "https://graph.microsoft.com/beta" $script:AccessToken = $null $script:PageSize = 50 $script:exitRequested = $false # Load WPF assemblies (used by GUI functions) Add-Type -AssemblyName PresentationFramework -ErrorAction SilentlyContinue Add-Type -AssemblyName PresentationCore -ErrorAction SilentlyContinue Add-Type -AssemblyName WindowsBase -ErrorAction SilentlyContinue # Dot-source Private functions $privateFunctions = @( 'Install-RequiredModules' 'Connect-ToGraph' 'Invoke-Graph' 'Get-RemediationScripts' 'Get-AllManagedDevices' 'Get-DeviceByName' 'Invoke-Remediation' 'Sync-Device' 'Show-GridSelector' 'Show-DeviceSelectionGui' 'Show-ProgressGui' 'Test-IRODUpdate' 'Show-UpdateNotification' ) foreach ($function in $privateFunctions) { $functionPath = Join-Path $PSScriptRoot "Private\$function.ps1" if (Test-Path $functionPath) { . $functionPath } } # Dot-source Public functions $publicFunctions = @( 'Invoke-IntuneRemediation' 'Configure-IROD' 'Clear-IRODConfig' ) foreach ($function in $publicFunctions) { $functionPath = Join-Path $PSScriptRoot "Public\$function.ps1" if (Test-Path $functionPath) { . $functionPath } } # Install required modules on module import Install-RequiredModules # Export only public functions Export-ModuleMember -Function $publicFunctions |