Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

mit VBScript Datei auslesen und anhand des Inhalts Drucker mappen

Frage Entwicklung VB for Applications

Mitglied: thunderwave

thunderwave (Level 1) - Jetzt verbinden

06.12.2007 um 13:04 Uhr, 3687 Aufrufe

Hallo!

Folgendes Problem: Ich möchte mit einem VBScript Drucker in Abhängigkeit von Gruppenzugehörigkeiten mappen. Da bei uns die Abteilungen jedoch häufig ihre Drucker wechseln bzw. neue Drucker hinzukommen, möchte ich nicht jedes Mal das Script pflegen müssen.
Deshalb möchte ich jetzt vom VBScript eine Datei z.B. CSV oder Textdatei auslesen lassen und die Drucker je nach Inhalt dieser Datei verbinden.
Der Inhalt der CSV oder Textdatei sollte einfahc wie folgt aussehen:

Gruppe1;\\Printserver\CanoniR5000
Gruppe2;\\Printserver\CanonColor
Gruppexyz;\\Printserver\Druckerxyz

Die Funktion ohne auslesen einer Datei habe ich schon fertig und die funktioniert auch (siehe unten). Wer kann mir weiterhelfen?!?
P.S. Die "Drucker-und-Gruppen-Datei" will ich auf einem zentralen Share ablegen.

Jetzt schon Vielen Dank!!!

Grüße Jochen


01.
'region Script Settings 
02.
'<ScriptSettings xmlns="http://tempuri.org/ScriptSettings.xsd"> 
03.
'  <ScriptPackager> 
04.
'    <process>cscript.exe</process> 
05.
'    <arguments /> 
06.
'    <extractdir>%TEMP%</extractdir> 
07.
'    <files /> 
08.
'    <usedefaulticon>true</usedefaulticon> 
09.
'    <showinsystray>false</showinsystray> 
10.
'    <altcreds>false</altcreds> 
11.
'    <efs>true</efs> 
12.
'    <ntfs>true</ntfs> 
13.
'    <local>false</local> 
14.
'    <abortonfail>true</abortonfail> 
15.
'    <product /> 
16.
'    <version>1.0.0.1</version> 
17.
'    <versionstring /> 
18.
'    <comments /> 
19.
'    <includeinterpreter>false</includeinterpreter> 
20.
'    <forcecomregistration>false</forcecomregistration> 
21.
'    <consolemode>false</consolemode> 
22.
'    <EnableChangelog>false</EnableChangelog> 
23.
'    <AutoBackup>false</AutoBackup> 
24.
'  </ScriptPackager> 
25.
'</ScriptSettings> 
26.
'endregion 
27.
 
28.
Option Explicit ' Force explicit declarations 
29.
30.
' Variables 
31.
32.
Dim WSHNetwork 'Variable zum Drucker verbinden 
33.
Dim FSO 
34.
Dim strUserName ' Variable für Benutzername 
35.
Dim strUserDomain ' Variable für Domäne 
36.
Dim ObjGroupDict ' Dictionary of groups to which the user belongs 
37.
 
38.
Set WSHNetwork = WScript.CreateObject("WScript.Network") 
39.
Set FSO = CreateObject("Scripting.FileSystemObject") 
40.
41.
' Wait until the user is really logged in... 
42.
43.
strUserName = "" 
44.
While strUserName = "" 
45.
WScript.Sleep 100 ' 1/10 th of a second 
46.
strUserName = WSHNetwork.UserName 
47.
Wend 
48.
strUserDomain = WSHNetwork.UserDomain 
49.
 
50.
' Gruppenmitgliedschaft wird ausgelesen.  
51.
 
52.
Set ObjGroupDict = CreateMemberOfObject(strUserDomain, strUserName) 
53.
 
54.
 
55.
'--------------------------------------------------------------------------------- 
56.
 
57.
If MemberOf(ObjGroupDict, "Gruppe1") Then 
58.
  
59.
'Netzwerkdrucker werden verbunden wenn Gruppenmitgliedschaft erfüllt ist. 
60.
 
61.
WshNetwork.AddWindowsPrinterConnection "\\Printserver\CanoniR5000" 
62.
WshNetwork.SetDefaultPrinter "\\\\Printserver\CanoniR5000" 
63.
WScript.echo "Drucker CanoniR5000 wurde verbunden." 
64.
 
65.
Else 
66.
WScript.echo "Drucker CanoniR5000 wurde nicht verbunden" 
67.
End If 
68.
 
69.
 
70.
'---------------------------------------------------------------------------------- 
71.
 
72.
 
73.
If MemberOf(ObjGroupDict, "Gruppe2") Then 
74.
  
75.
'Netzwerkdrucker werden verbunden wenn Gruppenmitgliedschaft erfüllt ist. 
76.
 
77.
WshNetwork.AddWindowsPrinterConnection "\\Printserver\CanonColor" 
78.
WshNetwork.SetDefaultPrinter "\\Printserver\CanonColor" 
79.
WScript.echo "Drucker CanonColor wurde verbunden." 
80.
 
81.
Else 
82.
WScript.echo "Drucker CanonColor wurde nicht verbunden" 
83.
End If 
84.
 
85.
 
86.
'---------------------------------------------------------------------------------- 
87.
 
88.
 
89.
 
90.
Function MemberOf(ObjDict, strKey) 
91.
' Given a Dictionary object containing groups to which the user 
92.
' is a member of and a group name, then returns True if the group 
93.
' is in the Dictionary else return False.  
94.
95.
' Inputs: 
96.
' strDict - Input, Name of a Dictionary object 
97.
' strKey - Input, Value being searched for in 
98.
' the Dictionary object 
99.
' Sample Usage: 
100.
101.
' If MemberOf(ObjGroupDict, "DOMAIN ADMINS") Then 
102.
' wscript.echo "Is a member of Domain Admins." 
103.
' End If 
104.
105.
106.
MemberOf = CBool(ObjGroupDict.Exists(strKey)) 
107.
 
108.
End Function 
109.
 
110.
 
111.
Function CreateMemberOfObject(strDomain, strUserName) 
112.
' Given a domain name and username, returns a Dictionary 
113.
' object of groups to which the user is a member of. 
114.
115.
' Inputs: 
116.
117.
' strDomain - Input, NT Domain name 
118.
' strUserName - Input, NT username 
119.
120.
Dim objUser, objGroup 
121.
 
122.
Set CreateMemberOfObject = CreateObject("Scripting.Dictionary") 
123.
CreateMemberOfObject.CompareMode = vbTextCompare 
124.
Set objUser = GetObject("WinNT://" _ 
125.
& strDomain & "/" _ 
126.
& strUserName & ",user") 
127.
For Each objGroup In objUser.Groups 
128.
CreateMemberOfObject.Add objGroup.Name, "-" 
129.
Next 
130.
Set objUser = Nothing 
131.
 
132.
End Function
Ähnliche Inhalte
Microsoft Office
gelöst Inhalte vieler excel dateien auslesen und als Liste wiedergeben (13)

Frage von tw3aker zum Thema Microsoft Office ...

Batch & Shell
gelöst Dateien nach Inhalt umbenennen (4)

Frage von Icemaniac zum Thema Batch & Shell ...

Batch & Shell
gelöst Datei zeilenweise auslesen - es passiert aber nichts (3)

Frage von Nagus zum Thema Batch & Shell ...

Windows Server
PowerShell Inhalt einer csv Datei löschen (4)

Frage von makaroni zum Thema Windows Server ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
gelöst Leiten "dumme" Switches VLAN-Tags mit durch? (26)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (16)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Router & Routing
FTTH bzw FTTB Router (13)

Frage von ukulele-7 zum Thema Router & Routing ...