WifiConnectionAPI.psm1
|
<#
.Synopsis Wifi .Description Manage Wifi connections .Parameter Get-RadioState .Parameter Set-RadioState .Parameter Get-WifiDeviceInformation .Parameter Get-WiFiAvailableAdapter .Parameter Get-WifiConnectionProfile .Parameter Remove-WifiConnectionProfile .Parameter Get-WifiCurrentConection .Parameter Get-WifiAvailableNetwork .Parameter Search-WifiNetworks .Parameter Disconnect-WifiNetwork .Parameter Connect-WiFiNetwork #> <#$Private = @(Get-ChildItem -Path "$PSScriptRoot\Private" -Filter "*.ps1" -ErrorAction SilentlyContinue) $Public = @(Get-ChildItem -Path "$PSScriptRoot\Public" -Recurse -filter "*.ps1" -ErrorAction SilentlyContinue) # Nu kun je ze veilig samenvoegen foreach ($import in ($Private + $Public)) { try { #Write-Host "$($import.FullName)" . $import.FullName } catch { Write-Error "Error Loading $($import.Name): $($_.Exception.Message)" } }#> if ($PSVersionTable.PSVersion.Major -gt 5) { #Write-host $ExecutionContext.SessionState.Module.Name #Write-host $ExecutionContext.SessionState.Module.path Write-Warning "This Module Runs in compatability mode it serializes output" # 1. Check of de sessie al bestaat $script:MyWiFiSession = Get-PSSession -Name "WiFiBridge" -ErrorAction SilentlyContinue | Where-Object { $_.State -eq 'Opened' } # 2. Alleen een nieuwe maken als er nog geen is if (-not $script:MyWiFiSession) { $script:MyWiFiSession = New-PSSession -Name "WiFiBridge" -UseWindowsPowerShell # Alleen de module laden in de NIEUWE sessie (bespaart tijd bij herladen) $ModulePath = $ExecutionContext.SessionState.Module.Path Invoke-Command -Session $script:MyWiFiSession -ScriptBlock { Import-Module -Name $using:ModulePath -Force } } # 3. Import-PSSession en Register-ArgumentCompleter moeten ALTIJD draaien bij een reload # zodat de functies en completers in de huidige PS7 sessie ververst worden. $Commands = @("Set-RadioState", "Get-RadioState", "Get-WifiAvailableNetworks","Search-WifiNetworks","Connect-WifiNetwork","Request-LocationPermission") Import-PSSession -Session $script:MyWiFiSession -CommandName $Commands -AllowClobber -ErrorAction SilentlyContinue #Loading Compleeres for usewindowsPowershell . "$PSScriptRoot\Private\ArgumentCompleters7.ps1" #$Session = Get-PSSession | Where-Object { $_.ConfigurationName -like "*WinPS*" -or $_.Name -like "*WinPS*" } | Select-Object -First 1 while ($script:MyWiFiSession.State -ne 'Opened') { Start-Sleep -Seconds 1 } #Checking if the session is up and running Register-ArgumentCompleter -CommandName 'Set-RadioState' -ParameterName 'Index' -ScriptBlock $ScriptBlockSetRadioStateIndexPS7 Register-ArgumentCompleter -CommandName 'Set-RadioState' -ParameterName 'SetState' -ScriptBlock $ScriptBlockSetRadioStateSetStatePS7 Register-argumentCompleter -commandName 'Connect-WifiNetwork' -ParameterName 'Ssid' -ScriptBlock $ScriptBlockArgumentCompleterSsidPS7 Register-ArgumentCompleter -CommandName 'Connect-WifiNetwork' -parameterName 'WifiReconnectionKind' -ScriptBlock $ScriptBlockConnectWifiNetworkWifiReconnectionKindPS7 Register-ArgumentCompleter -CommandName 'Connect-WifiNetwork' -ParameterName 'Bssid' -ScriptBlock $ScriptBlockArgumentCompleterBssidPS7 return } else { #Default Load Sequence for powershell 5 ImportSystemModules . "$PSScriptRoot\Private\ArgumentCompleters.ps1" . "$PSScriptRoot\Private\Await.ps1" . "$PSScriptRoot\Private\Functions.ps1" . "$PSScriptRoot\Private\ScriptBlocks.ps1" . "$PSScriptRoot\Public\Connectivity\Get-InternetConnectionCost.ps1" . "$PSScriptRoot\Public\Geolocation\Request-LocationPermission.ps1" . "$PSScriptRoot\Public\HotSpot\WifiHotSpot.ps1" . "$PSScriptRoot\Public\Radio\Get-RadioState.ps1" . "$PSScriptRoot\Public\Radio\Set-RadioState.ps1" . "$PSScriptRoot\Public\Wifi\Connect-WifiNetwork.ps1" . "$PSScriptRoot\Public\Wifi\Connect-WifiNetworkWps.ps1" . "$PSScriptRoot\Public\Wifi\Disconnect-WifiNetwork.ps1" . "$PSScriptRoot\Public\Wifi\Get-WiFiAvailableAdapter.ps1" . "$PSScriptRoot\Public\Wifi\Get-WifiAvailableNetworks.ps1" . "$PSScriptRoot\Public\Wifi\Get-WifiConnectionProfile.ps1" . "$PSScriptRoot\Public\Wifi\Get-WifiCurrentConnection.ps1" . "$PSScriptRoot\Public\Wifi\Get-WifiDeviceInformation.ps1" . "$PSScriptRoot\Public\Wifi\Get-WifiNetworkWpsCapability.ps1" . "$PSScriptRoot\Public\Wifi\Remove-WiFiConnectionProfile.ps1" . "$PSScriptRoot\Public\Wifi\Search-WifiNetworks.ps1" } #Export-ModuleMember -Function @( $Public.BaseName ) <#Export-ModuleMember Get-RadioState Export-ModuleMember Set-RadioState Export-ModuleMember Get-WifiDeviceInformation Export-Modulemember Get-WiFiAvailableAdapter Export-ModuleMember Get-WifiAvailableNetworks Export-ModuleMember Search-WifiNetworks Export-ModuleMember Get-WifiConnectionProfile Export-Modulemember Remove-WifiConnectionProfile Export-ModuleMember Get-WifiCurrentConnection Export-ModuleMember Disconnect-WifiNetwork Export-ModuleMember Connect-WiFiNetwork Export-ModuleMember Request-LocationPermission#> |