FleetDM-PowerShell.psm1
#Requires -Version 5.1 # Script-level variables for connection management $script:FleetDMConnection = $null $script:FleetDMWebSession = $null # Get public and private function definition files $Public = @(Get-ChildItem -Path $PSScriptRoot\Public\*.ps1 -ErrorAction SilentlyContinue -Recurse) $Private = @(Get-ChildItem -Path $PSScriptRoot\Private\*.ps1 -ErrorAction SilentlyContinue -Recurse) # Dot source the files foreach ($import in @($Public + $Private)) { try { . $import.FullName } catch { Write-Error -Message "Failed to import function $($import.FullName): $_" } } # Export public functions Export-ModuleMember -Function $Public.Basename # Module cleanup $ExecutionContext.SessionState.Module.OnRemove = { if ($script:FleetDMConnection) { Write-Warning "FleetDM connection will be closed. Use Connect-FleetDM to reconnect in future sessions." $script:FleetDMConnection = $null $script:FleetDMWebSession = $null } } |