retz12
Goto Top

VBS Drucker hinzufügen PC bezogen

Ich habe ein VBS Script, dass die Drucker verbinden soll. Das fuktioniert auch perfekt.
Nun stehe ich vor dem Problem, dass ich es nicht schaffe das Script so umzuschreiben, dass die Drucker Computer abhängig verbunden werden und bestimmte Drucker als Standard einrichtet.

Mein Script bis jetzt:
**********************************************
' * Funktion:		Remove Printer  
' * Beschreibung:	Entfernt alle Drucker  
' * Rückgabe:		<keine>  
' **********************************************  

' *** Löschen der Druckerverbindungen ***  

On Error Resume Next
	PrinterPath = "\\s01\Drucker1"  
	WshNetwork.RemovePrinterConnection PrinterPath, true, true
	PrinterPath = "\\s01\Drucker2"  
	WshNetwork.RemovePrinterConnection PrinterPath, true, true
	PrinterPath = "\\s01\Drucker3"  
	WshNetwork.RemovePrinterConnection PrinterPath, true, true
	If Err.Number <> 0 Then
		Err.Clear
	End If
	
' **********************************************  
' * Funktion:		Map Printer  
' * Beschreibung:	Mapped Alle Drucker und definiert Standard  
' * Rückgabe:		<keine>  
' **********************************************  

' *** Herstellen der Druckerverbindungen ***  

On Error Resume Next
	WshNetwork.AddWindowsPrinterConnection "\\s01\Drucker1"  
	WshNetwork.AddWindowsPrinterConnection "\\s01\Drucker2"  
	WshNetwork.AddWindowsPrinterConnection "\\s01\Drucker3"  
	If Err.Number <> 0 Then
		Err.Clear
	End If
	
	
' *** Standard-Drucker definieren  
	
	WSHNetwork.SetDefaultPrinter "\\s01\Drucker2"  
	If Err.Number <> 0 Then
		Err.Clear
	End If

Content-Key: 91444

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

Ausgedruckt am: 28.03.2024 um 17:03 Uhr

Mitglied: Logan000
Logan000 07.07.2008 um 11:32:58 Uhr
Goto Top
Moin

So in etwa kann das gehen:
Set WSHNetwork = WScript.CreateObject("WScript.Network")  
WORKSTATION = WSHNetwork.ComputerName

If WORKSTATION  ="PCxy" THEN  
    ' *** Hier Drucker für PCxy verbinden  
End if

Gruß L.
Mitglied: retz12
retz12 07.07.2008 um 12:21:50 Uhr
Goto Top
und wenn ich dann mehrere PCs habe. Ich habe z.b. 10 PCs.
Frage ich die alle mit if ab.

so in etwa!
Set WSHNetwork = WScript.CreateObject("WScript.Network")   
WORKSTATION = WSHNetwork.ComputerName 

If WORKSTATION  ="PC01" THEN   
 ' *** Hier Drucker für PCxy verbinden   

If WORKSTATION  ="PC02" THEN   
 ' *** Hier Drucker für PCxy verbinden   

If WORKSTATION  ="PC03" THEN   
 ' *** Hier Drucker für PCxy verbinden   
End if

oder geht es anders?
Mitglied: Logan000
Logan000 07.07.2008 um 12:36:38 Uhr
Goto Top
oder geht es anders?
Schon, wird nur noch aufwendiger. Setzt ein AD und GPOs vorraus.

Es ist auch nur bedingt sinnvoll Netzwerkdrucker pro Computer zu verbinden.
Bei uns haben wir pro Etage ein Script das alle Netzwerkdrucker diese Etage verbindet.
Dies lassen wir per GPO auf Abteilungsgruppen anwenden.

Gruß L.
Mitglied: retz12
retz12 07.07.2008 um 13:27:25 Uhr
Goto Top
warum ist es nur bedingt sinnvoll?
Ich habe AD und auch GPOs jedoch nur Benutzerrichtlininen keine Computerrichtlinine.
Da sich bei uns alle MA auf jeden PC anmelden kann. So richtig in Etagen kann man es bei uns nicht trennen.

Ich habe ein anderes Script gefunden und dort wird mit if und else gearbeitet

Set WSHNetwork = WScript.CreateObject("WScript.Network")   
WORKSTATION = WSHNetwork.ComputerName 

If WORKSTATION  ="PC01" THEN   
 ' *** Hier Drucker für PCxy verbinden   

else WORKSTATION  ="PC02" THEN   
 ' *** Hier Drucker für PCxy verbinden   
Funktioniert das so auch?
Mitglied: 60730
60730 07.07.2008 um 13:51:27 Uhr
Goto Top
warum ist es nur bedingt sinnvoll?

weil es "unelegant" ist face-wink


Nimm deinen Schnippsel und speichere Ihn nach druckername.vbs im Netlogon ab.

dann nimmst du deine AD und vergibst pro Netzdrucker eine neue Gruppe

Dann nimmst du Kixtart und machst:
if ingroup "drucker1"  
    Shell "cscript drucker1.vbs //nologo"  
endif

Das ganze für jeden Drucker und das wars.


Edit:
Funktioniert das so auch?
Denn mit if else kling usw usf. wird das Script nur Zäher - funktionieren (wenn dazu nicht die lange Laufzeit zählt) - würde es.

@ Retz12
So richtig in Etagen kann man es bei uns nicht trennen.
Wenn du für jede Etage ein eigenes Vlan nimmst
1 OG = 192.168.101.0
2 OG 0 192.168.102.0
usw - gehts ganz easy
Mitglied: Logan000
Logan000 07.07.2008 um 13:57:28 Uhr
Goto Top
Ich habe ein anderes Script gefunden und dort wird mit if und else gearbeitet
Funktioniert das so auch?
Ja natürlich.

warum ist es nur bedingt sinnvoll?
Nun das hängt sicherlich von der Anzahl der User/Pcs und der Anzahl der Netzwerkdrucker sowie der Größe (Anzahl) der Gebäude ab.
Aber generell sehe ich den Mehrnutzen als eher gering an.

Über wie viele Netzwerkdrucker reden wir? 5 -10.
Im Zweifel bindest Du alle ein.

Nur bei mehreren Gebäuden/Standorten ist es wirklich sinnvoll und dann reicht meist auch Benutzerspez.

Gruß L.