isarc01
Goto Top

Powershell Script funktioniert plötzlich nicht mehr!

Hallo

ich habe hier kleines Script, welches vor kurzen noch funktioniert hat.
Jetzt funktioniert es nicht mehr. (Fehler beim Lesen der Datei)

Wenn ich allerdings den PDF Filname direkt angebe, funktioniert es!
Weiß jemand, ob es von Seiten Microsoft eine Update gabe, das verhindert beliebige PDFs zu drucken ??


Funktioniert nicht:


#params from OD

param (
    [string]$file = "C:\Scans\Urkunden\*.pdf",  
    $number_of_copies = 1
)



for ($i = 1; $i -le $number_of_copies; $i++) {

    cmd /C "lpr -S 10.39.30.204 -P drucker $file"  

 }

Start-Sleep -s 1


Funktioniert:

#params from OD

param (
    [string]$file = "C:\Scans\Urkunden\test.pdf",  
    $number_of_copies = 1
)



for ($i = 1; $i -le $number_of_copies; $i++) {

    cmd /C "lpr -S 10.39.30.204 -P drucker $file"  

 }

Start-Sleep -s 1

Content-ID: 1388870319

Url: https://administrator.de/contentid/1388870319

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

Cloudrakete
Cloudrakete 14.10.2021 aktualisiert um 15:26:32 Uhr
Goto Top
Hi ,

wer führt das Skript aus? Ein User on-demand, ein scheduled Task?
Wenn zweiteres: Wo läuft der Task? Auf dem selben System wo auch die Files liegen? Welcher User startet das Skript?
Wie ist der letzte Status des Tasks?
Coreknabe
Coreknabe 14.10.2021 um 16:08:52 Uhr
Goto Top
Moin,

ich tippe auf Ordnerberechtigungen (Ordnerinhalt auflisten) im Benutzerkontext?

Gruß
isarc01
isarc01 14.10.2021 um 16:49:17 Uhr
Goto Top
Hallo,

also das Script starte ich manuell bzw. später auch unter Task.
(Ich bin Administrator mit Adminrechten)

Wie gesagt, wenn ich im Script diese PDF direkt benenne und das Script starte, funktioniert es.

Wenn ich *.pdf im Script ändere, dann funktioniert es nicht.


(Damals hat es so auch funktioniert)

Problem ist halt, dass unterschiedliche Dateiname im Verzeichnis liegen.
Oder gibt seit neuestem Problem mit dem Sternchen * = für beliebige PDFs?

Im Ereignisprotokoll konnte ich nichts dazu finden.
erikro
erikro 14.10.2021 um 16:58:58 Uhr
Goto Top
Moin,

warum nimmst Du in der Powershell nicht die Befehle der PS?
PDF via Powershell drucken - Reader nach druck schließen

hth

Erik
isarc01
isarc01 15.10.2021 um 10:15:14 Uhr
Goto Top
Hallo,

danke für euer Feedback.

Das Problem ist, dass ich hier die Anzahl der Prints am Gerät eintrage und diese der Drucker dann ausgibt:

Könnte ich dieses auch in das empfohlene Script von Erik integrieren?


param (
[string]$file = "C:\Scans\Urkunden\*.pdf" | %{ ,
$number_of_copies = 1
)


for ($i = 1; $i -le $number_of_copies; $i++) {

cmd /C "lpr -S 10.39.39.204 -P HPDrucker $file"

}
LeeX01
LeeX01 19.10.2021 um 09:42:38 Uhr
Goto Top
Dein Script weiß schlichtweg nicht was es machen soll bzw. welche Datei gemeint ist wenn da mehrere im Ordner liegen.

Versuch es mal so

param (
    [string]$files = "C:\Scans\Urkunden\*.pdf",  
    [int]$number_of_copies = 1
)

foreach ($file in (gci $files)){ (1..$number_of_copies).ForEach({cmd /C "lpr -S 10.39.39.204 -P HPDrucker $($file.FullName)"}) }  

Grüße
isarc01
isarc01 26.11.2021 um 10:40:56 Uhr
Goto Top
Hallo,

ich möchte nochmals kurz Feedback geben:
Wenn man das Script manuel startet, dann funktioniert es.

Aber wenn ich es vom verknüpften Programm aus starte, funktioniert es nicht, außer ich lösche das Argument [number_of_copies]

Aber dieses Argument ist mir wichtig, da der User Anzahl der Kopien festlegen kann.
Siehe Anlage..

Wie gesagt, es klappt irgendwie mit der Übergabe des [number_of_copies] nicht. ;-(

param (
    [string]$file = "\\10.11.15.5\usr_at\Scans\temp\*.pdf",  
	[int]$number_of_copies = 1
)


 
foreach ($onefile in (Get-ChildItem $file -File)) {
    for ($i = 1; $i -le $number_of_copies; $i++) {
        cmd /C "lpr -S 10.39.35.204 -P printer ""$($onefile.FullName)"""  
    }
   }




Start-Sleep -s 1

foreach($item in (Get-ChildItem -Recurse -Path "\\10.11.15.5\usr_at\Scans\temp" | Where-Object {$_.Name -like "*.pdf*"}))  
{
    Copy-Item -Path $item.FullName -Destination "\\10.11.15.5\usr_at\Scans\Urkunden"   
}

foreach($item in (Get-ChildItem -Recurse -Path "\\10.11.15.5\usr_at\Scans\Urkunden" | Where-Object {$_.Name -like "*true*.pdf*"}))  
{
    Copy-Item -Path $item.FullName -Destination "\\10.11.15.5\usr_at\Scans\ElrV"   
}

get-childitem -Path \\10.11.10.5\usr_at\Scans\Urkunden *.pdf |  Rename-Item -NewName { $_.Name  -replace "\d{2}\.\d{2}\.", ''-replace "true" }  

Start-Sleep -s 5

Remove-Item -Path "\\10.11.15.5\usr_at\Scans\temp\*.pdf" -Recurse   
2021-11-26 10_33_52-print - remotedesktopverbindung
error