Microsoft MVPs inside





 MCSEboard.de – IT Pro Forum zu Windows Server 2008 R2 / 2008 / 2003 & Windows 7 / Vista / XP
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Forum — Scripting


Alles zum Thema System Administration Scripting — Q & A zum Thema Scripting: Batch, VBS, WMI, PowerShell


Antwort
     
Themen-Optionen
Alt 21.07.2008, 11:44   #1
Board Veteran
 
Benutzerbild von pfeffis
 
Offline
Registriert seit: 05-2006
Beiträge: 512
Drucker verbinden vb.net

Hallo @all.

Habe folgende lächerliche Zeile zusammen bekommen:

Sub Main()


' alle installierten Drucker ermitteln und
' in einer ComboBox zur Auswahl anzeigen
For Each sPrinter As String In PrinterSettings.InstalledPrinters
ComboBox1.Items.Add(sPrinter)
Next

End Sub


Ich würde ganz gerne Drucker als Anmeldescript in der AD verbinden. Vorab habe ich diese kleine Zeile "programmiert". Irgendwie kennt er die PrinterSettings nicht (wurde nicht deklariert).

Jemand eine Idee?

PS: ES muss vb.net sein
    Mit Zitat antworten
Alt 21.07.2008, 11:58   #2
Expert Member
 
Benutzerbild von NilsK
 
Offline
Registriert seit: 06-2008
Ort: Hannover
Beiträge: 7.376
Moin,

ein Anmeldeskript in VB.NET? Wer soll das denn wie ausführen? Was ist der Hintergrund dieser ... exotischen Anforderung? (Zumal wenn du offenbar keine besonderen VB-Kenntnisse hast.)

Mach es doch lieber so, wie es jeder macht und wie es funktioniert, z.B. hier beschrieben:

Drucker per Anmelde Script zuweisen

Gruß, Nils

Signatur
Nils Kaczenski

MVP Directory Services: Architecture
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!

    Mit Zitat antworten
Alt 21.07.2008, 12:06   #3
Board Veteran
 
Benutzerbild von pfeffis
 
Offline
Registriert seit: 05-2006
Beiträge: 512
ok, als anmeldescript war etwas unglücklich ausgedrückt.

Die anderen Varianten kenne ich schon, nur sind diese nicht gerade praktikabel. Bei uns melden sich bspw. Azubis an unterschiedlichen Rechnern an, welche an logischerweise unterschiedlichen Orten stehen und dann mit unterschiedliche Drucker verbunden werden müssen. Und ich dachte mir dass ich die ganze Geschichte eleganter über vb.net hinbekomme - da ganz einfach objectorientiert.
Weiß nicht was daran so falsch sein soll - ich meine 10 Zeilen VB gegen 100 dos zeilen...

trotzdem erstmal danke
    Mit Zitat antworten
Alt 21.07.2008, 12:10   #4
Expert Member
 
Benutzerbild von NilsK
 
Offline
Registriert seit: 06-2008
Ort: Hannover
Beiträge: 7.376
Von falsch hast du gesprochen, nicht ich. Ein Anmeldeskript kann nun mal nicht in VB formuliert werden, daher meine Rückfrage. Dass es dir offenbar um was anderes geht, hast du ja erst hinterher gesagt.

Für das standortbezogene Verbinden von Druckern findest du auf gruppenrichtlinien.de auch eine Lösung. Wenn die nicht passt, solltest du vielleicht mal deine Anforderungen kundtun.

Oder falls es dir tatsächlich nur um dein Fragment ging: Irgendwoher muss VB ja wissen, was für ein Objekt "PrinterSettings" sein soll, oder? Dein Fragment definiert es ja nicht.

Gruß, Nils

Signatur
Nils Kaczenski

MVP Directory Services: Architecture
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!

    Mit Zitat antworten
Alt 21.07.2008, 12:22   #5
Expert Member
 
Benutzerbild von Cybquest
 
Offline
Registriert seit: 12-2006
Ort: Weinsberg
Beiträge: 1.523
Evtl. oben drüber noch ein...

Code:
Imports System.Drawing.Printing
Mehr zur Printersettings-Klasse:
PrinterSettings-Klasse (System.Drawing.Printing)

(von irgendwo dort hast du auch den Beispielcode, stimmts )

Signatur
My name is Frank, you can say you to me.

    Mit Zitat antworten
Alt 21.07.2008, 13:56   #6
Board Veteran
 
Benutzerbild von pfeffis
 
Offline
Registriert seit: 05-2006
Beiträge: 512
danke. das Import musste ich dennoch manuell machen . Foldenden Code habe ich nun zusammen:

Imports System.Drawing.Printing
Imports system.io

Module Module1

Sub Main()

Using file As StreamWriter = New StreamWriter("c:\drucker.txt")
For Each sPrinter As String In PrinterSettings.InstalledPrinters
file.Write(sPrinter & vbCrLf)
Next
End Using

End Sub

End Module

Damit liest er mir nun die installierten drucker aus. fein . Step 2 wäre jetzt für mich Drucker zu verbinden, sprich aus AD Gruppen auszulesen und dem entsprechenden User zuzuweisen.

Da würde ich an sowas denken:

Dim net As Object

net = CreateObject("WScript.Network")
net.AddWindowsPrinterConnection("\\server\drucker")

ist das zum hinzufügen korrekt oder gibt es einen einfacheren weg?

Geändert von pfeffis (21.07.2008 um 14:34 Uhr).
    Mit Zitat antworten
Alt 21.07.2008, 14:59   #7
Expert Member
 
Benutzerbild von Cybquest
 
Offline
Registriert seit: 12-2006
Ort: Weinsberg
Beiträge: 1.523
Ich würde sagen, wenn schon VB, dann alles in VB
Z.B. in der Art:
Code:
Declare Function AddPrinterConnection Lib "winspool.drv"_ Alias "AddPrinterConnectionA" (ByVal pName As String) As Long
...
dummy = AddPrinterConnection("\\server\drucker")

Signatur
My name is Frank, you can say you to me.

    Mit Zitat antworten
Alt 21.07.2008, 15:17   #8
Board Veteran
 
Benutzerbild von pfeffis
 
Offline
Registriert seit: 05-2006
Beiträge: 512
hey danke. mal ganz **** gefragt, wofür steht das "dummy"?
    Mit Zitat antworten
Alt 21.07.2008, 15:36   #9
Expert Member
 
Benutzerbild von Cybquest
 
Offline
Registriert seit: 12-2006
Ort: Weinsberg
Beiträge: 1.523
Wenn "AddPrinterConnection" als Funktion aufgerufen wird, brauchts ja ne Variable für den Rückgabewert. Für Rückgabewerte, die ich nur vorübergehend oder gar nicht auswerte, verwende ich ganz gerne ne "dummy"-Variable

Signatur
My name is Frank, you can say you to me.

    Mit Zitat antworten
Alt 21.07.2008, 19:23   #10
Board Veteran
 
Benutzerbild von pfeffis
 
Offline
Registriert seit: 05-2006
Beiträge: 512
vielen dank cybquest. Habe nun nach viel Recherche noch dieses Schnippselchen gefunden und weiß aber so ganz ehrlich überhaupt nicht was ich damit anfangen soll . Was bedeuten die xml "Anweisungen"? Wieso Public shared Sub? Fragen über Fragen


Module Module1
''' <summary>
''' Adds a Network Printer to the computer
''' </summary>
''' <param name="printerName">Druckername</param>
''' <param name="networkPath">Netzwerkpfad</param>
''' <param name="useExistingDriver">Don't overwrite existing driver</param>
''' <param name="setDefaultPrinter">Set as the default printer</param>
''' <remarks></remarks>


Public Sub AddNetworkPrinter(ByRef printerName As String, ByRef networkPath As String, _
Optional ByRef useExistingDriver As Boolean = 0, Optional ByRef setDefaultPrinter As Boolean = 0)

Dim cmdToSend As String = "rundll32 printui.dll,PrintUIEntry /in /m " & Chr(34) & printerName & Chr(34) & " /f " & networkPath
If useExistingDriver Then cmdToSend += " /u" ' /u = use the existing printer driver if it's already installed
If setDefaultPrinter Then cmdToSend += " /y" ' /y = set printer as the default
Shell(cmdToSend, AppWinStyle.Hide) ' execute the command


' Example of how to use this subroutine:
AddNetworkPrinter("Printername", "\\server\printername", True, True)
End Sub

End Module
    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Drucker verbinden mit GPP corydoras Windows Forum — Scripting 8 05.01.2010 14:33
Drucker verbinden mgarcia Windows Forum — Allgemein 0 12.04.2005 15:11
Drucker Verbinden Wadder Windows Forum — Allgemein 4 20.08.2004 12:26
Drucker automatisch verbinden? schüler_85 Windows Forum — LAN & WAN 1 30.04.2004 09:39
Drucker von NT-Rechner verbinden Erebos Windows Forum — Allgemein 3 18.11.2003 22:08


Alle Zeitangaben in MEZ/CET. Es ist jetzt 15:11 Uhr. Seite generiert in 0,042 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang