okoester
Goto Top

Per VBScript den Druckernamen eines Netzwerkdruckers ändern

Hallo,

Ich hoffe, meine Frage gehört hier hin, da es sich eigentlich um eine Frage zu VBScript handelt.

Ich schreibe gerade an einem Logon-Script in VBS. Dort werden unter anderem Drucker und Laufwerke zugewiesen.

Ich möchte nun auch den Netzlaufwerken und den Netzwerkdruckern einen Namen zuweisen. Bei den Laufwerken mache ich das so:

objWshShellApp.NameSpace(strMyDriveLetter).Self.Name = strMyName

Dies klappt auch sehr gut.

Nun möchte ich dies auch für die Netzwerkdrucker umsetzen:

objWshShellApp.NameSpace(strUNCPrinter).Self.Name = strPrinterName

klappt aber so nicht. (strUNCPrinter sieht etwa so aus: "\\SERVER\DRUCKERFREIGABENAME")

Geht das überhaupt so einfach?
Spreche ich den Drucker überhaupt richtig an?

Gruß
Olaf

Content-Key: 171762

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

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: dog
dog 19.08.2011 um 20:59:40 Uhr
Goto Top
Spreche ich den Drucker überhaupt richtig an?



Geht das überhaupt so einfach?

Hast du es schonmal im Explorer geschafft einen Netzwerkdrucker umzubenennen? face-wink

Anders gesagt: Nein, geht nicht. Ist nur über einen doofen Umweg möglich.
Mitglied: MonoTone
MonoTone 22.08.2011 um 11:33:09 Uhr
Goto Top
Also,

die Frage ist, was möchtest du genau ändern.
Ich gehe mal davon aus, das du nicht den Druckernamen an sich ändern willst, sondern den Anzeigenamen des Druckers am Client.

Und das geht sehr wohl (auch über den Explorer) über die Shell

Hier ein kleines Beispiel, welches du natürlich für deine Zwecke anpassen musst
Dim d
Dim N, colItems, objItem
Set d = CreateObject("Shell.Application")  
' Namespace 4: 	Drucker und Faxgeräte  
Set N = d.NameSpace(4)
'Alle Objekte auflisten (genau wie im Explorer :D), sprich auch Drucker hinzufügen ist dabei  
Set colItems = N.Items
For Each objItem in colItems
'Einfach alle anzeigen  
   WSH.Echo objItem.Name
'-- Beispiel, Drucker mit dem Namen   
   If objItem.Name = "MFC-7440N auf mein-netzwerk-printserver" Then  
'-- wird umbenannt  
    objItem.Name = "MFC"  
   End If
Next
Mitglied: okoester
okoester 22.08.2011 um 12:14:50 Uhr
Goto Top
Hallo MonoTone,

das klingt schon mal sehr gut. Ich möchte natürlich den Anzeigenamen ändern. Das war etwas schwammig ausgedrückt.
Aber nach so einer Lösung suchte ich. Nur war mein Ansatz wohl falsch face-smile

Ich denke, aus Deiner Lösung kann ich extrahieren, was ich brauche.

Danke!
Mitglied: MonoTone
MonoTone 22.08.2011 um 16:02:28 Uhr
Goto Top
Solche Antworten sind natürlich extrem hilfreich.

Haltung..arrogant
Hinweise...Null
Nutzfaktor..Null

Zusammengefassung deiner Antwort..
Du machst es falsch, es geht irgendwie total doof und anders.

Offensichtlich sammelst du einfach nur Beiträge..
Mitglied: dog
dog 22.08.2011 um 16:52:53 Uhr
Goto Top
Vielleicht solltest du dich erstmal ein bisschen hier umschauen, bevor du andere User anpöbelst, die schon wesentlich länger dabei sind.
Oh und vielleicht hättest du deinen Code auch mal testen sollten.
Dann hättest du nämlich gemerkt, dass man keine Netzwerkdrucker unter Windows umbenennen kann!

Vielleicht kennst du aber einfach nicht den Unterschied zwischen einem Netzwerkdrucker und einem Lokalen Drucker mit Netzwerkport?

Ich habe mich lange genug mit dem Thema beschäftigt und meine Antwort hat die Frage eindeutig beantwortet.

Sei doch so nett und erspare uns demnächst solche überflüssigen Kommentare!
Mitglied: okoester
okoester 06.09.2011 um 10:38:38 Uhr
Goto Top
Hallo MonoTone,

die Idee war gut. Ich habe sie auch soweit umsetzen können, dass sie für meine Zwecke fast funktioniert. Fast deswegen, weil leider die Änderung des Namens selbst nicht zulässig ist.

objItem.Name = "MFC"  

geht leider nicht. "Operation für dieses Objekt nicht zulässig" (oder so ähnlich)...

Trotzdem Danke. Wissen, dass etwas nicht geht, ist ja auch was... face-big-smile

Mfg Olaf