[ADD-ON-WIN-XP/7] Geräteabhängige Treiberinstallation
Verfasst: 15 Jan 2010, 14:20
Hallo zusammen,
wir haben soeben eine Geräteabhängige Treiberinstallation realisiert. Dies könnte einigen von euch, sowie den Opsi-Support interessieren.
Es geht darum, dass einige Treiber per Setup installiert werden müssen, um alle Geräte Funktionen zu aktivieren (z.B. Fingerprint, Bluetooth, UMTS, usw.).
Wir haben dazu ein Visual Basic Script (.vbs) erstellt, welches das Computermodell abprüft und dann entsprechende Treiber mit dem lokalen Admin nachinstalliert.
Hier das Script (einfach z.B. als "install_device_drivers.vbs" speichern):
Ihr müsst die Dateipfade und ggf. das Netzwerklaufwerk noch an eure Gegebenheiten anpassen. Auch die Treiber Installation gilt es noch entsprechend zu ändern bzw. auf eure Geräte anzupassen.
Habe das aber extra zur Illustration und zum Verständnis drin gelassen.
Bei uns läuft nach der eigentlichen Windows 7 Installation ein Script "firstrun.cmd" ab, welches wir über den Registry Key RunOnce im Default User eingetragen haben.
Damit sich der lokale Admin direkt nach der Grundinstallation automatisch anmeldet, müssen diese Schlüssel in der Registry eingetragen werden:
Das kann man am Ende des "firstrun.cmd" Scripts einfach wieder deaktivieren mit:
Für Fragen stehe ich gerne zur Verfügung.
@Opsi-Support
Bitte drüber Nachdenken das zum implementieren. Danke.
wir haben soeben eine Geräteabhängige Treiberinstallation realisiert. Dies könnte einigen von euch, sowie den Opsi-Support interessieren.
Es geht darum, dass einige Treiber per Setup installiert werden müssen, um alle Geräte Funktionen zu aktivieren (z.B. Fingerprint, Bluetooth, UMTS, usw.).
Wir haben dazu ein Visual Basic Script (.vbs) erstellt, welches das Computermodell abprüft und dann entsprechende Treiber mit dem lokalen Admin nachinstalliert.
Hier das Script (einfach z.B. als "install_device_drivers.vbs" speichern):
Code: Alles auswählen
'Getinfo.vbs - used to get information on your computer
'
Dim strComputer, objWMIService, colSettings, intProc, strUser, strPassword, strDriveLetter, strHomeServer, strProfile
strDriveLetter = "Z:"
strHomeServer = "\\opsi\opt_pcbin\install"
strProfile = "False" ' Mapping (not) stored in user Profile
strUser = "pcpatch"
strPassword = "<DEIN PASSWORT>"
strComputer = "."
' Attach to WMI
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objNetwork = CreateObject("Wscript.Network")
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Set colSettings = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem")
For Each objComputer in colSettings
'Check and disconnect if the drive is already mapped.
if(ObjFSO.DriveExists(strDriveLetter)) then
objNetwork.RemoveNetworkDrive strDriveLetter, True, True
end if
'Map opsi drive.
objNetwork.MapNetworkDrive strDriveLetter, strHomeServer, strProfile, strUser, strPassword
'Check computer model.
If objComputer.Model = "CELSIUS H270" Then
Wscript.Echo "Gerätetyp ""Fujitsu Celsius H270"" erkannt." & VBCRLF & VBCRLF & "Installiere zusätzliche Gerätetreiber ..." & VBCRLF & VBCRLF & VBCRLF
WScript.Sleep 2000
Wscript.Echo "Installiere AuthenTec Fingerabdruck Scanner ..." & VBCRLF & VBCRLF
WshShell.Run("Z:\additional_device_drivers\H270\AuthenTec_Fingerprint_Reader\x32\AT8MinFujitsu.msi " & "/qb! /norestart"), 0, true
Wscript.Echo "Installiere GlobeTrotter Connect ..." & VBCRLF & VBCRLF
WshShell.Run("Z:\additional_device_drivers\H270\Globetrotter_Connect_3\x32\GlobeTrotterConnect.msi " & "/qb! /norestart"), 0, true
Wscript.Echo "Installiere STM Micro Accelerometer ..." & VBCRLF & VBCRLF
WshShell.Run("cmd /c start """" /wait ""Z:\additional_device_drivers\H270\STM_Micro_Accelerometer\setup.exe"" " & "-s"), 0, true
Wscript.Echo "Installiere Synaptics Touchpad ..." & VBCRLF & VBCRLF
WshShell.Run("cmd /c start """" /wait ""Z:\additional_device_drivers\H270\Synaptics_Pointing_Device\setup.exe"" " & "/s"), 0, true
Wscript.Echo "Installiere Toshiba Bluetooth Stack ..." & VBCRLF & VBCRLF
WshShell.Run("cmd /c start """" /wait ""Z:\additional_device_drivers\H270\Toshiba_Bluetooth_Stack\setup.exe"" " & "/S /V""/qb! /norestart"""), 0, true
Elseif objComputer.Model = "LIFEBOOK E8110" Then
Wscript.Echo "Gerätetyp ""Fujitsu-Siemens Lifebook"" erkannt." & VBCRLF & VBCRLF & "Installiere zusätzliche Gerätetreiber ..." & VBCRLF & VBCRLF & VBCRLF
WScript.Sleep 2000
Else
Wscript.Echo "Gerätetyp nicht erkannt, es handelt sich um ein: " & objComputer.Model & VBCRLF & VBCRLF & "Bitte Admin Bescheid geben. Danke"
WScript.Sleep 10000
End If
'Disconnect opsi drive.
objNetwork.RemoveNetworkDrive strDriveLetter, True, True
Next
Habe das aber extra zur Illustration und zum Verständnis drin gelassen.
Bei uns läuft nach der eigentlichen Windows 7 Installation ein Script "firstrun.cmd" ab, welches wir über den Registry Key RunOnce im Default User eingetragen haben.
Code: Alles auswählen
Windows Registry Editor Version 5.00
[HKEY_USERS\Default\Software\Microsoft\Windows\CurrentVersion\RunOnce]
"firstrun"="cmd /c \"%systemroot%\\system32\\firstrun.cmd\""
Code: Alles auswählen
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "AutoAdminLogon" /d "1" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "DefaultUserName" /d "Administrator" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "DefaultPassword" /d "<DEIN PASSWORT>" /f
Code: Alles auswählen
echo Deaktiviere Auto Admin Login ...
echo.
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "AutoAdminLogon" /f >nul
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "DefaultUserName" /f >nul
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "DefaultPassword" /f >nul
@Opsi-Support
Bitte drüber Nachdenken das zum implementieren. Danke.