Windows ja wifi
Referaat on veel tegemisel ...
Sissejuhatus
Referaadi eesmärk on teha lühikokkuvõte Wifi ühenduse kasutamisest ja konfigureerimiest Windowsis. Täpsemalt käsitlen netsh wlan utiliiti, mis toimib alates Windows Vistast. Näited põhinevad Windows7-l.
Autor
- Martin Jõgi
- Grupp A21
Üldine
Miskit siia hiljem ... ;)
Wifi võrguliidese käivitamine ja konfigureerimine
cmd.exe käsurealt:
netsh interface set interface "Wireless Network Connection" enable
või liidese keelamine:
netsh interface set interface "Wireless Network Connection" disable
või wifi võrguliidese käivitamine Control Panel\Network and Internet\Network Connections -s graafiliselt:
- Konfigureerimisest
hiljem.
netsh wlan käsud ja näited
Kõikie käskude vaatamiseks kirjuta cmd.exe -s netsh wlan
Saadaval olevate võrguliideste kindlaks tegemine
- Wifi (wlan) võrguliidese olemasolu vaatamine:
netsh wlan show interfaces
või
ipconfig /all
kus tuleks vaadata alates reast "Wireless LAN adapter Wireless Network Connection:"
Wifi võrguliidese võimete kindlaks tegemine
Kui tahame teada installitud wifi draivite versiooni või mis raadio tüübid on selles draiveris toetatud jms, siis:
- Wifi draiverite informatsiooni vaatamine:
netsh wlan show drivers
Wifi sätete vaatamine
netsh wlan show settings
Wifi profiilide vaatamine
Arvutisse salvestatud wifi võrkude profiilide vaatamine:
netsh wlan show profiles
mille väljund on näiteks järgmine:
C:\Users\Matzu>netsh wlan show profiles
Profiles on interface Wireless Network Connection:
Group policy profiles (read only)
---------------------------------
<None>
User profiles
-------------
All User Profile : Testik
All User Profile : Matzu
All User Profile : itcollege
All User Profile : ThomsonAC7674
Kindla wifi profiili informatsiooni vaatamine:
netsh wlan show profiles <profiilinimi>
Näiteks vaatame itcollege wifi profiili:
C:\Users\Matzu>netsh wlan show profiles itcollege
Profile itcollege on interface Wireless Network Connection:
=======================================================================
Applied: All User Profile
Profile information
-------------------
Version : 1
Type : Wireless LAN
Name : itcollege
Control options :
Connection mode : Connect automatically
Network broadcast : Connect only if this network is broadcasting
AutoSwitch : Do not switch to other networks
Connectivity settings
---------------------
Number of SSIDs : 1
SSID name : "itcollege"
Network type : Infrastructure
Radio type : [ Any Radio Type ]
Vendor extension : Not present
Security settings
-----------------
Authentication : Open
Cipher : None
Security key : Absent
Key Index : 1
Wifi võrku ühendamine
netsh wlan connect name="Wifivõrgunimi(SSID)"
näiteks:
netsh wlan connect name="itcollege" Connection request was completed successfully.
Wifi võrkude otsimine
netsh wlan show networks
ja nende täpsemate andmete vaatamine (signaali tugevus, raadio tüüp, kanalid jne):
netsh wlan show networks mode=bssid
Wifi võrgu jälgimine
Kui wifi ühendus tihti katkeb või on muud probleemid wifi võrguga, siis on hea mõte genereerida raport, selleks on käsk:
netsh wlan set tracing mode={yes|no|persistent}
kus yes - genereerib raporti, kuid peale süsteemi taaskäivitamist läheb uuesti 'no' peale. Persistent - Wifi ühendust jälgitakse koguaeg. Raportit on võimalik näha Windows performance monitor'is.
Wifi ühenduste filtreerimine
Mõnikord on kasulik kasutajate eest wifi võrgud ära blokkida või peita. Selleks kasutatakse käsku
netsh wlan add filter
Näiteks:
netsh wlan add filter permission=block ssid=sarvik networktype=infrastructure
millega keeletakse juurdepääs võrku "sarvik"
- Et keelatud "sarvik" võrku ei kuvataks "Connect to a Network" dialoogis, kasuta käsku
netsh wlan set blockednetworks display=hide
netsh wlan set blockednetworks display=show
Keelu maha võtmine:
netsh wlan add delete permission=block ssid=Meiewifi networktype=infrastructure
Veel võimalusi:
netsh wlan add filter permission={allow|block|denyall} ssid=wifivõrgunimi networktype={infrastructure|adhoc}
Filtrite vaatamine:
netsh wlan show filters
Windows PowerShell ja Wifi
Kuna Windows Powershellis on samuti palju võimalusi wifi-ga "mängimiseks" ning skriptimiseks, siis toon näiteid ka sealt:
- Kogu Wifi adapteri andmete vaatamine
get-wmiobject -class win32_networkadapter -namespace root\CIMV2 | where-object {$_.Name -match "Wireless"}
Lühemalt:
Get-WmiObject -Class Win32_NetworkAdapter -Filter "Name LIKE '%wireless%'"
- Powershelliga skriptimine
Oletame, et meil on vaja skripti, mis 'reset'ks Wifi adapteri.
Paneme kogu sisu .ps1 faili ja avame selle Powershellis (./failinimi.ps1)
#Teeme muutuja $wifi, mille väärtuseks on "Wifi adapter" $wifi = Get-WmiObject -Class Win32_NetworkAdapter -Filter "Name LIKE '%wireless%'" #Lülitame wifi adapteri välja $wifi.Disable() #Lülitame wifi adapteri sisse $wifi.Enable()
Et paremini aru saada, siis peaks Win23 klassid selgeks tegema, täpsemalt ei hakka neid siin seletama.
Windows Powershelli skript, mis otsib Wifi võrke ning need genereeritakse tabelisse. Tabel näeb välja selline:
- BSSID Channel Signal Encryption Authentication SSID
00:21:29:6d:2a:3a 11 18% CCMP WPA2-Personal sarvik
PARAM ($ifname = "")
# Windows Vista/2008/7
if ((gwmi win32_operatingsystem).Version.Split(".")[0] -lt 6) {
throw "This script works on Windows Vista or higher."
}
if ((gsv "wlansvc").Status -ne "Running" ) {
throw "WLAN AutoConfig service must be running."
}
$GLOBAL:ActiveNetworks = @();
$CurrentIfName = "";
$n = -1;
$iftest = $false;
netsh wlan show network mode=bssid | % {
if ( $_ -match "Interface") {
$CurrentIfName = [regex]::match($_.Replace("Interface name : ","")
,"\w{1,}").ToString();
if (($CurrentIfName.ToLower() -eq $ifname.ToLower()) -or ($ifname.length -eq 0)) {
$iftest=$true;
} else { $iftest=$false }
}
$buf = [regex]::replace($_,"[ ]","");
if ([regex]::IsMatch($buf,"^SSID\d{1,}(.)*") -and $iftest) {
$item = "" | Select-Object SSID,NetType,Auth,Encryption,BSSID,Signal,Radiotype,Channel;
$n+=1;
$item.SSID = [regex]::Replace($buf,"^SSID\d{1,}:","");
$GLOBAL:ActiveNetworks+=$item;
}
if ([regex]::IsMatch($buf,"Networktype") -and $iftest) {
$GLOBAL:ActiveNetworks[$n].NetType=$buf.Replace("Networktype:","");
}
if ([regex]::IsMatch($buf,"Authentication") -and $iftest) {
$GLOBAL:ActiveNetworks[$n].Auth=$buf.Replace("Authentication:","");
}
if ([regex]::IsMatch($buf,"Encryption") -and $iftest) {
$GLOBAL:ActiveNetworks[$n].Encryption=$buf.Replace("Encryption:","");
}
if ([regex]::IsMatch($buf,"BSSID1") -and $iftest) {
$GLOBAL:ActiveNetworks[$n].BSSID=$buf.Replace("BSSID1:","");
}
if ([regex]::IsMatch($buf,"Signal") -and $iftest) {
$GLOBAL:ActiveNetworks[$n].Signal=$buf.Replace("Signal:","");
}
if ([regex]::IsMatch($buf,"Radiotype") -and $iftest) {
$GLOBAL:ActiveNetworks[$n].Radiotype=$buf.Replace("Radiotype:","");
}
if ([regex]::IsMatch($buf,"Channel") -and $iftest) {
$GLOBAL:ActiveNetworks[$n].Channel=$buf.Replace("Channel:","");
}
}
if ( ($CurrentIfName.ToLower() -eq $ifname.ToLower()) -or ($ifname.length -eq 0) ) {
write-host -ForegroundColor Yellow "`nInterface: "$CurrentIfName;
if (($GLOBAL:ActiveNetworks.length -gt 0)) {
$GLOBAL:ActiveNetworks | Sort-Object Signal -Descending |
ft @{Label = "BSSID"; Expression={$_.BSSID };width=18},
@{Label = "Channel"; Expression={$_.Channel};width=8},
@{Label = "Signal"; Expression={$_.Signal};width=7},
@{Label = "Encryption"; Expression={$_.Encryption};width=11},
@{Label = "Authentication"; Expression={$_.Auth};width=15},
SSID
} else {
Write-host "`n No active networks found.`n";
}
} else {
Write-host -ForegroundColor Red "`n Could not find interface: "$ifname"`n";
}
(PowerShell Code Repository, 2010)
Ajalugu
Netsh wlan -st:hiljem...
Powerhsellist: Igal avaldatud Microsoft DOS ja Microsoft Windows’i versioonil personaalarvutitele on kaasas ka käsurea liidese tööriist. Nendeks on COMMAND.COM (installatsioonides, mis tuginevad MS-DOS’ile, kaasa arvatud Windows 9x) ja cmd.exe (Windows NT perekonna operatsioonisüsteemides). Kuid need on tavalised käsurea tõlgendajad, mis sisaldavad ainult väikese osa põhilisi käske. Muudeks eesmärkideks tuleb hankida eraldi konsool (taotlus), mis tugineks nendel shellidel. Need sisaldavad muuhulgas ka skriptimise keelt (komplektfailid), mida on võimalik kasutada erinevate käskude automatiseerimiseks. Kuid neid ei saa kasutada kõikide GUI funktsioonide automatiseerimiseks, osalt seepärast, et vastavates toimingutes on käsurea vasted läbi graafilise liidese piiratud ja skriptimise keel on elementaarne, ennetades kompleks-skriptide loomist saadavate funktsioonide koostamisega. Windows Server 2003 versioonis, oli olukord paranenud, kuid skriptimistugi oli siiski veel ebarahuldav.
Microsoft üritas tegeleda mõnede puudustega tutvustades 1998. aastal Windows 98-ga Windows Script Host’I, selle käsurida baseerus võõrustajal: cscript.exe. See ühendub Active Script mootoriga ja lubab skripte kirjutada sobivates keeltes, näiteks Jscript ja VBScript, võimendades APIs avatud rakendused COM kaudu. Ometigi on ka sellel omad puudused. See ei ole shelliga ühendatud, selle dokumentatsioon ei ole eriti ligipääsetav ning see omandas kiiresti haavatava süsteemi maine, pärast seda, kui mitmed kõrge profiiliga arvutiviirused tõid välja nõrkused turvalisuse sätetes. Erinevad Windowsi versioonid tagavad laialdase eri-eesmärgilise käsurea liidese (näiteks netsh ja WMIC) koos omaenda käsukomplektiga, kuid mitte ükski ei ole käsu shelliga ühilduv; samuti ei olnud need koostalitlusvõimelised.
2003-ndaks aastaks oli Windows alustanud uue shelli arendamist, mis kandis nime Monad (teise nimega Microsoft Shell või MSH). Monad oli mõeldud olema uus laialdane käsu shell uue värske disainiga, mis oleks võimeline automatiseerima kogu haldusülesannete tuumikut. Microsoft avaldas esimese Monad avaliku Beta (testversiooni) ja lasi selle välja 17. juunil 2006, Beta 2 11.septembril 2005 ja Beta 3 10.jaanuaril 2006. 25. aprillil 2006 teatati, et Monad nimetati ümber Windows Powershelliks, asetades selle märkimisväärsele kohale nende juhtimistehnoloogia pakkumistes. Power Shelli Release Candidate 1 väljastati samal ajal. Power Shelli Release Candidate 2 väljastati 26. septembril 2006 ning veebis (RTW) väljastati see 14. novembril 2006. Power Shell Vistale väljastati 30. jaanuaril 2007. Viimane Windows PowerShelli v2.0 CTP väljalase sai kättesaadavaks detsembris 2008.
PowerShell v2.0 lõpetati ja väljastati tootmisesse augustis 2009 olulise Windows 7 ja Windows Server 2008 R2 osana. PowerShelli versioonid vanematele operatsioonisüsteemidele (näiteks Windows XP, Windows Server 2003, Windows Vista ja Windows Server 2008) väljastati oktoobris 2009 ning on on allalaadimiseks saadaval nii 32-bitiste kui 64-bitistele platvormidele. (Wikipedia,2010)
Kokkuvõte
Hiljem!