function Clear-AlkamiModules { <# .SYNOPSIS Use this to unload all the Alkami modules and non-module script files #> [CmdletBinding()] [OutputType([void])] param ( ) function Select-ModulesForDevelopmentUnloading { <# .SYNOPSIS Filter the module list passed in to return modules to remove based on script-only or alkami name matching #> param( [Parameter(Position=0,Mandatory=$true,ValueFromPipeline=$true)] $Module = @() ) process { if ($Module.Name -match 'Alkami') { return $Module } if ($Module.Name -eq 'Cole.PowerShell.Developer') { return $Module } if ($Module.Version -eq '0.0' -and $Module.ModuleType -eq 'script' -and @($Module.ExportedCommands.Keys).length -eq 0) { return $Module } } } (Get-Module) | Select-ModulesForDevelopmentUnloading | Remove-Module -Force }