Käyttäjän työkalut

Sivuston työkalut


paketit:eduroam

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

  1. Windows 7 x86/x64 (tai Vista)
  2. oppilaitoksen eduroam-asetukset
  3. XML-muotoinen WiFi-profiili
  4. addwifi.vbs -skripti
  1. Luo Windows 7 -koneella haluamasi eduroam-profiili käyttäen (perusohjeet CSC:ltä)
  2. Avaa komentorivi admin-oikeuksin
  3. komenna netsh wlan export profile eduroam
  4. ota muodostunut XML-tiedosto talteen. Voit myös nimetä sen yksinkertaisemmaksi, esim. eduroam.xml
  5. Totea, että VB-skripti addwifi.vbs tekee mitä toivotkin sen tekevän
  6. 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”
  7. Iexpress.exe-ohjelmalle annetut vastaukset voi tallettaa tiedostoon. Tämä kannattaa toki tehdä.
  8. 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
paketit/eduroam.1336898696.txt.gz · Viimeksi muutettu: 2014/11/20 15:01 (ulkoinen muokkaus)