Seite 1 von 1

Powershell-Script: Treiber sichern

Verfasst: 04.07.2023, 17:08
von g-force
Ich möchte mit folgendem PS-Script automatisch Treiber in einen (zu erstellenden) Ordner sichern:

Code: Alles auswählen

$model =  Get-WmiObject -Class Win32_ComputerSystem | Select-Object -ExpandProperty SystemFamily
New-Item $model -itemtype Directory -force
DISM /online /export-driver /destination:S:\UPLOAD\DISM-Treiber\$model
Leider wird "$model" teilweise mit Leerzeichen ausgegeben (z.B. "Thinkpad T470s"). Bei der Erzeugung des Ordners wird ein Ordner names "T470s" erzeugt, es fehlt also ein Teil des Namens. Daran scheitert dann DISM, den dort wird der Ordner "Thinkpad T470s" erwartet.
Der Fehler liegt also in Zeile 2, wo der Ordner erzeugt wird. Weiß jemand eine Lösung?

Re: Powershell-Variable enthält Leerzeichen

Verfasst: 04.07.2023, 17:14
von g-force
Oh man... :ohno:

Wenn ich das auf Clients im Netzwerk ausführe, muß ich natürlich den kompletten Pfad eintragen!

Code: Alles auswählen

$model =  Get-WmiObject -Class Win32_ComputerSystem | Select-Object -ExpandProperty SystemFamily
New-Item "S:\UPLOAD\DISM-Treiber\$model" -itemtype Directory -force
DISM /online /export-driver /destination:"S:\UPLOAD\DISM-Treiber\$model"

Re: Powershell-Script: Treiber sichern

Verfasst: 07.07.2023, 13:19
von g-force
Nachdem ich festgestellt habe, daß nicht alle Hersteller konform mit den Variablen ("Get-WmiObject") umgehen, habe ich eine Variable eingebaut, um die Info besser zu übergeben. Besonders "Lenovo" fällt mit Abweichungen auf.

Code: Alles auswählen

$computerSystem = Get-WmiObject -Class Win32_ComputerSystem

$manufacturer = $computerSystem.Manufacturer

$family = $computersystem.SystemFamily

    if ($ComputerSystem.Manufacturer -eq 'LENOVO') {
        $Model = (Get-CimInstance -ClassName Win32_ComputerSystemProduct).Version
    }
    else {
        $model = $computerSystem.Model
    }

New-Item "S:\UPLOAD\DISM-Treiber\$manufacturer\$model" -itemtype Directory -force
DISM /online /export-driver /destination:"S:\UPLOAD\DISM-Treiber\$manufacturer\$model"

Re: Powershell-Script: Treiber sichern

Verfasst: 07.07.2023, 13:27
von DK2000
Get-WmiObject ist veraltet und steht teilweise auch nicht mehr zur Verfügung. Das würde durch Get-CimInstance ersetzt.

Aber ob dass das Problem war, keine Ahnung. Weiter unten verwendest Du ja schon Get-CimInstance.

Re: Powershell-Script: Treiber sichern

Verfasst: 07.07.2023, 16:15
von g-force
Ich verwende das Ganze innerhalb von MDT mit WDS. Deswegen sind mir auch die Befehle etwas durcheinander geraten (obwohl sie in diesem Fall funktionieren). Vielen Dank für den Hinweis!