Private/ScriptBlocks.ps1
|
$ScriptBlockCheckRadioOff = { if (-not (Get-RadioState | Where-Object { $_.Kind -eq 'WiFi' -and $_.State -eq 'On' })) { return [System.Management.Automation.CompletionResult]::new( '#Radio_is_OFF#', '--- RADIO IS OFF ---', 'ParameterValue', 'Use: Get-RadioState | Set-RadioState -SetState On' ) } } $ScriptBlockCheckLocationAccess = { if ((Request-LocationPermission -Silent) -ne [Windows.Devices.Geolocation.GeolocationAccessStatus]::Allowed) { return [System.Management.Automation.CompletionResult]::new( '#LocationBlocked#', '--- LocationBlocked ---', 'ParameterValue', 'Use: Enable Desktop-App Location in Privacy & Security \ Location' ) } } $ScriptblockSmartScan = { Param([int]$ParentId=0,[Switch]$TimeoutBlock) # --- SMART SCAN LOGICA --- $counts = foreach ( $a in Get-WiFiAvailableAdapter ) { ($a.NetworkReport.AvailableNetworks | Measure-Object).Count } $NewScanTrigerTime = if(-not $TimeoutBlock){(Get-Date).AddMinutes(-5)}else{(Get-Date).AddMinutes(-30)} $cacheIsOld = ($null -eq $script:WiFiLastScanTime -or $script:WiFiLastScanTime -lt $NewScanTrigerTime ) $anyAdapterEmpty = ($counts -le 1) if ($cacheIsOld -or $anyAdapterEmpty) { $null = Search-WifiNetworksPrivate -ParentId $ParentId } } $ScriptBlockCheckWifiRadioWarn = { if ((Get-RadioState | Where-Object { $_.Kind -eq 'Wifi' }).State -contains 'Off') { Write-Warning "A WiFi radio is off" } } #line is for debugging $null = $ScriptBlockCheckWifiRadioWarn, $ScriptBlockCheckLocationAccess, $ScriptblockSmartScan,$ScriptBlockCheckRadioOff |