Per Batch abfragen ob ein freigegebener Drucker vollständig verbunden ist

balgor
Goto Top
Hallo,

ich hätte folgende (hoffentlich) kurze Frage.

Gibt es eine Möglichkeit in einer Batch-Datei zu Prüfen ob ein auf dem Printserver freigegebener Drucker auf meinem PC erfolgreich verbunden ist?

Mit Laufwerken klappt das ziemlich einfach z.B.: "if exist X: "
Ich dachte jetzt an eine ähnliche Lösung z.B.: "if exist \\PrintServer\Drucker1"
Aber das funktioniert so leider nicht. Selbst wenn würde das aber auch eher Fragen ob die Freigabe auf dem PrintServer vorhanden ist, nicht ob sie auch bei mir eingerichtet ist ...

Ich wollte ein Batch basteln welches vor dem Start eines Programmes prüft ob bestimmter Drucker vorhanden und auch vollständig verbunden ist. (Drucker1 an PrintServer)

Das Programm ist nämlich leider sehr penibel, die Drucker werden beim Start des Programms abgefragt und ins Programm eingebunden, wenn der Drucker zu diesem Zeitpunkt nicht da ist startet das Programm halt ohne diesen Drucker. Wenn der Drucker 2 Sekunden später fertig da ist interessiert das Programm das nicht mehr. Das schießt aber unheimlich gerne an einigen Stellen Einstellungen zu eben genau diesem Drucker weg. Das wiederrum wird langsam nervig :) face-smile

Hat hier jemand vielleicht eine Idee?

Mfg Balgor

Content-Key: 660646

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

Ausgedruckt am: 20.05.2022 um 20:05 Uhr

Mitglied: BirdyB
BirdyB 09.03.2021 um 17:17:26 Uhr
Goto Top
Moin,
muss es denn wieder Uralt-Batch sein? PowerShell macht das doch viel eleganter...
Siehe hier: https://devblogs.microsoft.com/scripting/use-powershell-to-test-remote-p ...

VG
Mitglied: GarfieldBonn
GarfieldBonn 09.03.2021 um 17:18:50 Uhr
Goto Top
evtl hilft das (Powershell)

(Get-WMIObject -Class Win32_Printer).DetectedErrorState

0 = Unbekannt
1 = Anderer
2 = Kein Fehler, Drucker angehalten oder anderweitig abgeschaltet
3 = Wenig Papier
4 = Kein Papier
5 = Wenig Toner
6 = Kein Toner
7 = Klappe geöffnet
8 = Papierstau
9 = Offline
10 = Service
11 = Ausgabeschacht voll
Mitglied: Balgor
Balgor 10.03.2021 aktualisiert um 08:33:33 Uhr
Goto Top
Hallo,

"Muss" nicht Uralt-Batch sein, wäre für mich aber wesentlich einfacher umzusetzen. PowerShell steh ich wirklich ganz am Anfang mit meinem Wissen. Bei Batch-Geschichten behaupte ich mal ein ganz gutes Grundwissen zu haben um die allermeisten meiner Wünsche umsetzen zu können. (bis auf das jetzt :) face-smile )

Die Batch existiert bereits, macht noch viel mehr als die von mir gewünschte Abfrage des Druckers, die Abfrage wollte ich nur ergänzen. Ich habe die Frage daher nur auf den wesentlichen Teil reduziert.

Und ich wüsste nicht wie ich das alles in eine PowerShell schreiben soll.

Wenn es also irgendwie möglich ist, wäre mir die Uralt-Batch lieber.

Mfg Balgor
Mitglied: GarfieldBonn
GarfieldBonn 10.03.2021 um 12:20:54 Uhr
Goto Top
Schau mal, ob das weiterhilft

wmic Printer WHERE "Name like 'H%' " GET Name, Status, DetectedErrorState

H = zeige alle Drucker an, deren Namen mit H beginnt

Beispiel:
C:\WINDOWS\system32>wmic Printer WHERE "Name like 'H%' " GET Name, Status, DetectedErrorState

DetectedErrorState Name Status
0 HP Photosmart 5520 series (Netzwerk) Unknown
Mitglied: Balgor
Balgor 10.03.2021 um 17:02:19 Uhr
Goto Top
Hallo,

ich habe den Ansatz mit "wmic Printer ... und seinen vielen Möglichkeiten" freudig aufgenommen und ein wenig mit den Ergebnissen rumgespielt, wann immer es die Zeit zulies.
Aber scheiterte im Grunde immer daran das Ergebnis der Anzeige weiterzuverwenden.

Nach dem Prinzip "wenn in dem Output von wmic printer ... XXX enthalten ist dann starte mein Programm, andernfalls brich ab"

Ich weiß gar nicht mehr was ich alles ausprobiert habe... jedenfalls hat nichts funktioniert ... für heute reicht es mir jedenfalls erstmal. Wenn es die Zeit zulässt guck ich mir das Morgen nochmal an :) face-smile