Download und installation eines Druckertreibers mit Powershell

Wenn du welchen Pfad reinkopierst, damit es funktioniert? Mit oder ohne Leerzeichen vor der 6? Ich garantiere dir
ohne
Dein Script macht ein Leerzeichen rein.

Schau doch mal in die Zip-Datei. Die Zip-Datei hat kein Leerzeichen vor der 6 im Archiv, der Name der Zip schon.

Der Fix ist einfach:
Code:
$ZIPName = "KONIKA MINOLTA bizhub C300i PCL6"

Wobei es mit Verlaub aus meiner Sicht echt schlecht ist, so abhängig zu sein vom Ordner-Namen in der Zip-Datei. Ich würde es anders machen und zwar in die Richtung:

Code:
#Printerpfad eingeben
$DownloadOrdner ="$env:TEMP\Druckertreiber"
$ZIPName = "KONIKA MINOLTA bizhub C300i" # Der Name hier ist eigentlich beliebig...

cd $env:TEMP
if (!(Test-Path $DownloadOrdner)) {New-Item -Path $DownloadOrdner -ItemType Directory}
Invoke-WebRequest $DownloadPath -Outfile $ZIPName
Rename-Item $ZIPName -NewName "$ZIPName.zip"
Expand-Archive -Path $ZIPName.zip -DestinationPath $DownloadOrdner\$ZIPName -Force
$Entpackt = $DownloadOrdner + "\" +$ZIPName
pnputil.exe /add-driver "$Entpackt\*.inf" /subdirs
Add-PrinterDriver -Name $PrinterDriver
Add-PrinterPort -Name $PrinterPort -PrinterHostAddress $PrinterPort
Add-Printer $PrinterName -DriverName $PrinterDriver -PortName $PrinterPort[
 
Stimmt du hast recht es hat ein Leerzeichen reinkopiert. Ich habe das korriert, jedoch findet er den Pfad immer noch nicht.
1656523632608.png
1656523607561.png
 
Also mein entschlacktes Script (habe halt keinen Sharepoint...) funktioniert bei mir problemlos:

Code:
#Printerpfad eingeben
$DownloadOrdner ="$env:TEMP\Druckertreiber"
$ZIPName = "KONIKA MINOLTA bizhub C300i PCL6"
cd $env:TEMP
$Entpackt = $DownloadOrdner + "\" +$ZIPName
if (!(Test-Path $Entpackt)) {New-Item -Path $Entpackt -ItemType Directory}
Expand-Archive -Path $ZIPName*.zip -DestinationPath $Entpackt -Force
pnputil.exe /add-driver "$Entpackt\*.inf" /subdirs

Auf dich übertragen
Code:
#Printerpfad eingeben
$DownloadOrdner ="$env:TEMP\Druckertreiber"
$ZIPName = "KONIKA MINOLTA bizhub C300i PCL6"

cd $env:TEMP

Invoke-WebRequest $DownloadPath -Outfile "$ZIPName.zip"

$Entpackt = $DownloadOrdner + "\" +$ZIPName
if (!(Test-Path $Entpackt)) {New-Item -Path $Entpackt -ItemType Directory}
Expand-Archive -Path $ZIPName*.zip -DestinationPath $Entpackt -Force
pnputil.exe /add-driver "$Entpackt\*.inf" /subdirs
Add-PrinterDriver -Name $PrinterDriver
Add-PrinterPort -Name $PrinterPort -PrinterHostAddress $PrinterPort
Add-Printer $PrinterName -DriverName $PrinterDriver -PortName $PrinterPort

Führt zwar dazu, dass es am Ende bei den Verzeichnissen so aussieht:
1656524247701.png

Aber du bist dann unabhängig davon, wie es in der ZIP-Datei selbst aussieht.

Ergebnis bei mir:
1656524320195.png


Habe natürlich einen anderen Treiber dafür genommen...
 
Ich hab den Fehler endlich gefunden ich habe beim $ZIPName = KONIKA geschrieben anstatt KONICA.
Mein fertiges Powershell Script, falls jemand Interesse hat:

#Install Printer Driver

#Hier muss der Printer Driver angegeben werden so wie er in
#der Druckverwaltung unter Treiber steht.
$PrinterDriver = "KONICA MINOLTA Universal PCL v3.9.1"
#Hier gibt man den Druckernamen an
$PrinterName = "KONICA Minolta bizhub C300i"
#Hier gibt man die IP Adresse ein oder die Druckernamen
$PrinterPort = "optnmf01"
#Hier gibt man den SharePoint Pfad an und setzt am Ende ?download=1 ein damit es direkt heruntergeladen wird
$DownloadPath ="https://xxx.sharepoint.com/:u:/s/OPT/EWf8fXlcSbtFtpG08UfyW1oBy3dsJjvbyoe5TbdDpxkhqA?download=1"

#DownloadPfad
$DownloadOrdner ="$env:TEMP\Druckertreiber"
$ZIPName = "_Treiber" # Muss nicht geändert werden

cd $env:TEMP
if (!(Test-Path $DownloadOrdner)) {New-Item -Path $DownloadOrdner -ItemType Directory}
Invoke-WebRequest $DownloadPath -Outfile $ZIPName
Rename-Item $ZIPName -NewName "$ZIPName.zip"
Expand-Archive -Path $ZIPName*.zip -DestinationPath $DownloadOrdner -Force
pnputil.exe /add-driver "$DownloadOrdner\*.inf" /subdirs

Add-PrinterDriver -Name $PrinterDriver
Add-PrinterPort -Name $PrinterPort -PrinterHostAddress $PrinterPort
Add-Printer $PrinterName -DriverName $PrinterDriver -PortName $PrinterPort

Remove-Item $DownloadOrdner -Recurse
Remove-Item "$ZIPName.zip" -Recurse

Danke für deine Geduld und Hilfe @tollertyp
 
  • Gefällt mir
Reaktionen: tollertyp
Sehr schön, dass es geht.

Ja, so kleine Abweichungen fallen nur schwer auf. MIt einem guten Editor eher. Ich würde VS Code empfehlen:
1656536111841.png


Also da können halt Typos schneller auffallen, wenn man auch etwas an die Hervorhebungen gewohnt ist und darauf achtet.

Edit: keine Ahnung, woher das "Kon" kommt, ach wollte Konica schreiben und hab mich dann entschieden dein Script zu nehmen :-)
 
Zurück
Oben