Tämä on vanha versio dokumentista!
eduroam WiFi-profiilin paketointi
Oppilaitoksen oman eduroam-profiilin jakaminen ei etenkään Windowsin kanssa ole järin yksinkertaista käyttäjille joiden koneet eivät ole keskitetyn hallinnan piirissä. Windows XP:n kohdalla langattoman profiilin luomisen tuskan voi helpoiten kokea CSC:n Windows XP-ohjeesta eikä siihen juurikaan helpotusta ole tarjolla. Eduroamin dokumentaatiosta löytyy client-ohjeistus missä profiilin paketointiin ja jakamiseen käytetään kolmannen osapuolen tuotteita. Vistasta alkaen Windows osaa kuitenkin käsitellä WiFi-profiileja varsin monipuolisesti netsh-komentorivityökalun avulla. Jotta oppilaitoksen eduroam-profiilia voisi jakaa kätevästi tarvitaan tälle työkalulle vähän lihaa luiden ympärille eli jonkinlainen yksinkertainen eduroamin ”asennusohjelma”. Tarjolla olevat vaihtoehdot edellyttävät administrator-oikeuksia vaikka WiFi-profiilit voivat olla myös käyttäjäkohtaisia jolloin admin-oikeuksia ei tarvittaisi. Seuraavilla ohjeilla voit luoda eduroam WiFi-profiilin asennusohjelman, joka toimii standard user -oikeuksilla ja lisää ohjelman ajavalle käyttäjälle eduroam-verkon käyttöön oppilaitoksen määrityksillä.
Profiilin asennuksen luomiseen tarvitaan
- Windows 7 x86/x64 (tai Vista)
- oppilaitoksen eduroam-asetukset
- XML-muotoinen WiFi-profiili
- addwifi.vbs -skripti
- Luo Windows 7 -koneella haluamasi eduroam-profiili käyttäen (perusohjeet CSC:ltä)
- Avaa komentorivi admin-oikeuksin
- komenna
netsh wlan export profile eduroam
- ota muodostunut XML-tiedosto talteen. Voit myös nimetä sen yksinkertaisemmaksi, esim. eduroam.xml
- Totea, että VB-skripti
addwifi.vbs
tekee mitä toivotkin sen tekevän - käynnistä 32-bittinen Windowsin mukana tuleva iexpress.exe -ohjelma, jotta muodostuva ohjelma olisi 32-bittinen ja toimisi siten niin 32- kuin 64-bittisissä Windowseissa
- 32-bittisessä Windowsissa
”%systemroot%\System32\iexpress.exe”
- 64-bittisessä Windowsissa
”%systemroot%\SysWOW64\iexpress.exe”
- Iexpress.exe-ohjelmalle annetut vastaukset voi tallettaa tiedostoon. Tämä kannattaa toki tehdä.
- wscript.exe addwifi.vbs eduroam ”Utu-eduroam.xml”
Appendix
- addwifi.vbs
' Add Wireless (WiFi) Profile to Windows Vista or newer ' 9.11.2011 | Mikko Järvinen <mikko@utu.fi> | University of Turku ' ' usage: wscript addwifi.vbs ProfileName "WiFi-Filename.xml" user|everyone ' (Export WiFi-config xml file using command: netsh wlan export profile <profilename>) Option Explicit 'On Error Resume Next Dim objFileSystem Dim objShell Dim strComputer Dim strServiceName Dim strInstallCommand Dim strUnInstallCommand Dim strQueryCommand Dim strWLANNotFoundTitle Dim strWLANNotFoundText Dim strWLANImportedTitle Dim strWLANImportedText Dim strWLANExistsTitle Dim strWLANExistsText Dim strOSVersionTitle Dim strOSVersionText Dim strWiFiProfileName Dim strWiFiProfile Dim strWiFiProfileScope Dim cmdArgs Dim intReturnCode Dim intAnswer Dim strWindowsVersion Dim strWindowsMajorVersion Set objShell = CreateObject("Wscript.Shell") Set objFileSystem = CreateObject("Scripting.FileSystemObject") Set cmdArgs = WScript.Arguments If WScript.Arguments.Count = 3 Then strWiFiProfileName = WScript.Arguments(0) strWiFiProfile = WScript.Arguments(1) Select Case LCase(WScript.Arguments(2)) Case "everyone" strWiFiProfileScope = "all" Case Else strWiFiProfileScope = "current" End Select strInstallCommand = "netsh wlan add profile filename=""" & strWiFiProfile & """ user=" & strWiFiProfileScope strQueryCommand = "netsh wlan show profile " & strWiFiProfileName strUnInstallCommand = "netsh wlan delete profile " & strWiFiProfileName strOSVersionTitle = strWiFiProfileName strOSVersionText = "Langattoman verkon profiilin luomiseen automaattisesti" & VbCrLf & _ "vaaditaan Windows Vista tai Windows 7." & VbCrLf & _ VbCrLf & _ "Wireless Profile automatic configuration requires" & VbCrLf & _ "Windows Vista or Windows 7." strWLANNotFoundTitle = strWiFiProfileName strWLANNotFoundText = "Langatonta verkkokorttia ei löytynyt tai" & VbCrLf & _ "'WLAN AutoConfig'-palvelu ei ole käynnissä." & VbCrLf & _ "Profiilin " & strWiFiProfileName & " lisääminen ei onnistunut." & _ VbCrLf & VbCrLf & _ "Wireless network card not found or" & VbCrLf & _ "'WLAN AutoConfig' service is not started." & VbCrLf & _ "Profile " & strWiFiProfileName & " couldn't be imported." strWLANImportedTitle = strWiFiProfileName strWLANImportedText = "Langaton verkko " & strWiFiProfileName & " lisätty onnistuneesti." & _ VbCrLf & VbCrLf & _ "Wireless network " & strWiFiProfileName & " imported successfully." strWLANExistsTitle = strWiFiProfileName strWLANExistsText = "Langaton verkko " & strWiFiProfileName & " on jo määriteltynä." & _ VbCrLf & VbCrLf & _ "Wireless network " & strWiFiProfileName & " is already configured." ' --- Check for a Windows Version strWindowsVersion = objShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion") strWindowsMajorVersion = Left(strWindowsVersion, 1) If strWindowsMajorVersion = "5" Then ' Windows 2000, XP, 2003 intAnswer = MsgBox(strOSVersionText , vbOKOnly + vbCritical + vbSystemModal, strOSVersionTitle) WScript.Quit(1) End If ' --- Check if a wlansvc is Started strComputer = "." ' Local Computer strServiceName = "wlansvc" ' WLAN AutoConfig If Not isServiceRunning(strComputer,strServiceName) Then intAnswer = MsgBox(strWLANNotFoundText , vbOKOnly + vbCritical + vbSystemModal, strWLANNotFoundTitle) WScript.Quit(2) End If ' --- Check if Profile already exists intReturnCode = objShell.Run(strQueryCommand, 0, True) If intReturnCode = 0 Then ' WiFi Profile already exists intAnswer = MsgBox(strWLANExistsText , vbOKOnly + vbInformation + vbSystemModal, strWLANExistsTitle) WScript.Quit(0) End If ' --- Add WiFi Profile intReturnCode = objShell.Run(strInstallCommand, 0, True) If intReturnCode = 1 Then ' something went wrong intAnswer = MsgBox(strWLANNotFoundText , vbOKOnly + vbCritical + vbSystemModal, strWLANNotFoundTitle) WScript.Quit(1) Else ' WiFi Profile imported intAnswer = MsgBox(strWLANImportedText , vbOKOnly + vbInformation + vbSystemModal, strWLANImportedTitle) WScript.Quit(0) End If Else intAnswer = MsgBox("WiFi profile name or file name not defined.", vbOKOnly + vbCritical + vbSystemModal, "Error") WScript.Quit(2) End If ' ----- Functions ----- ' Function to check if a service is running on a given computer Function isServiceRunning(strComputer,strServiceName) Dim objWMIService, strWMIQuery strWMIQuery = "Select * from Win32_Service Where Name = '" & strServiceName & "' and state='Running'" Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") If objWMIService.ExecQuery(strWMIQuery).Count > 0 Then isServiceRunning = true Else isServiceRunning = false End If End Function