param([switch]$Force) $local:currentSys = [SystemName]::_GetValidValues('',$true,$true); if( -not $global:MyModulesWarning -or $Force ) { $global:MyModulesWarning = @() } [MyConfig]::GetConfigPaths('mymodules',$false) | ForEach-Object { $local:modules = $( Get-Content $_ | ConvertFrom-Json ); $modules.Always; $currentSys | ForEach-Object { $modules."$_" } | Where-Object { $_} } | Where-Object { $local:m = $_ if( $( try { -not (Get-Module -ListAvailable $m -ErrorAction stop) } catch { $true } )) { $m -notin $global:MyModulesWarning } } | ForEach-Object { $global:MyModulesWarning += $_ Write-Warning "Missing module: $_" }