Probleme mit PnPutil.exe im OPSIScript

Antworten
Tigger
Beiträge: 25
Registriert: 27 Jun 2018, 08:31

Probleme mit PnPutil.exe im OPSIScript

Beitrag von Tigger »

Hallo Gemeinde!

ich habe ein OPSI script geschrieben mit dem die Installation der Treiber durchführe. Beim Test mit wininst.exe als Administrator funktioniert es.
Starte ich das script aber über den Opsi Agent dann öffnet sich zwar das CMD Fenster, es sieht auch so aus als würde alles funktionieren, aber leider geht es nicht.

Code: Alles auswählen

;Standard Text, shown during installation
Message = Bitte warten, das Produkt wird installiert
;Set Loglevel
setLogLevel = 6
;Stop when errors
ExitOnError = false
;Syntax Fehler are shown in a seperate window
ScriptErrorMessages = on
;Do not use Single-Step Mode
TraceMode = off
;No winst-window in foreground while batchmode
StayOnTop = false
 
[Actions]
requiredWinstVersion >= "4.11.4"

DefVar $ProductId$
DefVar $ProductName$
DefVar $MinimumSpace$
DefVar $ExitCode$
DefVar $LogDir$
DefVar $InstallDir32$
DefVar $InstallDir64$

Set $LogDir$ = "%SystemDrive%\tmp"

Set $ProductId$       = "Driver Install"

ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
DefVar $BasePath$
DefVar $SysInfoManufacturer$
DefVar $SysInfoModel
DefVar $DriversPathbyAudit$
DefVar $DriversPathpreferred$
DefVar $pnputim$ 

set $pnputim$ = "%ScriptPath%\PnPutil.exe"

set $BasePath$ = "%ScriptDrive%\win81-x64\drivers\drivers"
set $SysInfoManufacturer$ = getValue("sysinfo.Manufacturer", getHWBiosInfoMap)
set $SysInfoModel = getValue("sysinfo.Product Name", getHWBiosInfoMap)

;set $SysInfoManufacturer$ = "Intel corporation" ;zu testzwecken enablen und anpassen
;set $SysInfoModel = "NUC6i3SYB"  ;zu testzwecken enablen und anpassen 

set $DriversPathbyAudit$ = $BasePath$  + "\additional\byAudit\" + $SysInfoManufacturer$ + "\" + $SysInfoModel
set $DriversPathpreferred$ = $BasePath$  + "\preferred" 

DosBatch_DriversUpdate

[DosBatch_DriversUpdate]
@echo off
for /R "$DriversPathbyAudit$" %%i in (*.inf) do (
                     echo Treiberupdate fuer "%%i"
                     "$pnputim$" -i -a "%%i"
                     )

for /R "$DriversPathbyAudit$" %%i in (*.cmd) do (
                     echo Install fuer "%%i"
                     call "%%i"
                     )

for /R "$DriversPathpreferred$" %%i in (*.inf) do (
                     echo Treiberupdate fuer "%%i"
                     "$pnputim$" -i -a "%%i"
                     )

for /R "$DriversPathpreferred$" %%i in (*.cmd) do (
                     echo Install fuer "%%i"
                     call "%%i"
                     )



Das Tool PnPutil.exe liegt mit im OPSI Verzeichnis. Es wird auch aufgerufen. Es ist auch nicht anders wenn ich das Tool von der Festplatte des Installierten OS starte.

In diesem Zusammenhang hätte ich noch eine Frage. Wie kann das Script ermitteln welches OPSI OS Paket installiert wurde. Hintergrund der Frage ist das ich auch noch das Verzeichnis des OS automatisch lagen kann. Im Moment ist das ja hardcoded

Und bevor hier auch die Frage kommt. Ja die Variable %ScriptDrive% funktioniert.

MFG Alexander Koch
larsg
Beiträge: 283
Registriert: 16 Dez 2014, 18:06

Re: Probleme mit PnPutil.exe im OPSIScript

Beitrag von larsg »

kopier die treiber mal auf die lokale festplatte und mach den aufruf der pnputil.exe mittels winbatch & runelevated.
Tigger
Beiträge: 25
Registriert: 27 Jun 2018, 08:31

Re: Probleme mit PnPutil.exe im OPSIScript

Beitrag von Tigger »

Hallo larsg,
larsg hat geschrieben:kopier die treiber mal auf die lokale festplatte und mach den aufruf der pnputil.exe mittels winbatch & runelevated.
das Funktioniert.
Aber das ist keine Option. Die Verzeichnisse in denen die Treiber sind sind pro Modell ca. 2 GB groß ich möchte das aber nicht.
Gibt es keine Andere Lösung?
larsg
Beiträge: 283
Registriert: 16 Dez 2014, 18:06

Re: Probleme mit PnPutil.exe im OPSIScript

Beitrag von larsg »

Tigger hat geschrieben:Hallo larsg,
larsg hat geschrieben:kopier die treiber mal auf die lokale festplatte und mach den aufruf der pnputil.exe mittels winbatch & runelevated.
das Funktioniert.
Aber das ist keine Option. Die Verzeichnisse in denen die Treiber sind sind pro Modell ca. 2 GB groß ich möchte das aber nicht.
Gibt es keine Andere Lösung?
Sorry, länger nicht mehr ins Forum geguckt ..

Naja es scheint als ob PnPutil nicht mit Dateien auf Netzlaufwerken arbeiten kann, von daher hast du an der Stelle wohl nicht allzu viele Optionen.
Ich habe es in meinen Treiberpaketen auch so gelöst, also hatte ich das gleiche Problem sehr wahrscheinlich auch :D

Vielleicht gibt es ein anderes Tool das auch mit Netzlaufwerken arbeiten kann, würde mich aber wundern.

Treiberpakete sind in aller Regel mit allerlei Kram überladen den man löschen kann.
Meine Faustregel zum Bereinigen von Treiberpaketen (insbesondere für die Treiberintegration) -

Ist in irgendeinem Ordner eine .inf Datei, dann belasse ich diesen Ordner und alle Unterordner so wie sie sind.
Ansonsten kommen zumindest die Dateien weg.
Antworten