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

Skript für Drucker per AD zuordnen

Frage Microsoft Windows Server

Mitglied: florian.rhomberg

florian.rhomberg (Level 1) - Jetzt verbinden

07.01.2006, aktualisiert 18.10.2012, 7637 Aufrufe, 8 Kommentare

Wir haben zahlreiche Drucker die über die gesmate Schule verteilt sind. Alle Benutzer werden zentral verwaltet und alle Drucker sind am Server eingerichtet, notwendig wegen eines Druckerabrechnungsprogramm.

Hi,
Ich habe inzwischen im anmeldskript einmal eingetragen, dass alle Druckerverbindungen die mit dem Profil gespeichert werden gelöscht werden. Die Computer habe ich im AD in OU zusammengefasst und zwar raumweise. Im Moment hat jede Raum ein eigenes Skript mit dem der richtige Drucker dem Benutzer zugeordnet wird. Nun wollte ich fragen ob es möglich ist mithilfe von if-Schleifen oder switch, wie auch immer, beim Anmeldskript zunächts das AD abzufragen um zu wissen in welchen Raum der Benutzer gearde sitzt. Gint es da eine Möglichkeit?

Liebe Grüße,
Florian
Mitglied: gemini
08.01.2006 um 01:10 Uhr
Hallo eolith421,

wie man die OU des Computers direkt auswerten kann, bin ich jetzt überfragt.
Eine Möglichkeit wäre, den DN des Computers zu zerlegen, das ist aber keine elegante Lösung.

Für solche Sachen gibt es eigentlich ein Attribut des Computerobjekts, den Standort.

01.
strContainer	= "OU=<<a>OuDerPCs<a>>" 
02.
strPrintSRV = "Druckserver" 
03.
Set WshNetwork = Wscript.CreateObject("Wscript.Network") 
04.
strComputer = LCase(WshNetwork.ComputerName) 
05.
Set objRootDSE = GetObject("LDAP://rootDSE") 
06.
Set objItem = GetObject("LDAP://cn=" & strComputer & "," & strContainer & "," & _ 
07.
   objRootDSE.Get("defaultNamingContext")) 
08.
strLocation = objItem.Get("location") 
09.
Select Case strLocation 
10.
   Case "Raum1" 
11.
      WshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV & "\Drucker1" 
12.
      WshNetwork.SetDefaultPrinter "\\" & strPrintSRV & "\Drucker1"	 
13.
   Case "Raum2" 
14.
      WshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV & "\Drucker2" 
15.
      WshNetwork.SetDefaultPrinter "\\" & strPrintSRV & "\Drucker2"	 
16.
   Case Else 
17.
End Select
Gruß
gemini
Bitte warten ..
Mitglied: wiri
08.01.2006 um 10:22 Uhr
hi
oder hier
http://www.gruppenrichtlinien.de/index.html?/HowTo/Anmelde_Scripts.htm
stehen schöne Beispiele
cu
willi
Bitte warten ..
Mitglied: florian.rhomberg
08.01.2006 um 11:54 Uhr
Danke für die Antwort! Es wäre nett wenn du mir noch die ersten Zeilen bis zu StrLocation erkären könntest wäre ich echt dankbar. Den Rest glaube ich mal zu verstehen. Nebenbei ne dumme Frage, das ist ein VB Script oder?, kann ich also nicht als bat speichern?

Liebe Grüße,
Florian
Bitte warten ..
Mitglied: gemini
08.01.2006 um 12:41 Uhr
Frage, das ist ein VB Script oder?, kann ich also nicht als bat speichern?
Ja, ist ein VBScript und braucht die Endung .vbs

01.
' Die Variablen werden mit Inhalt gefüllt. 
02.
' OuDerPCs muss dann mit dem Namen der OU ersetzt werden in de die PCs sind, 
03.
' also bspw. strContainer = "OU=AllePCs" 
04.
strContainer	= "OU=<<a>OuDerPCs<a>>" 
05.
' Der Server auf dem die Drucker installiert sind 
06.
strPrintSRV = "Druckserver" 
07.
' Eine Instanz des Network Objekts wird estellt. 
08.
Set WshNetwork = Wscript.CreateObject("Wscript.Network") 
09.
' Die Eigenschaft Computername des Network-Obj. wird abgefragt 
10.
strComputer = LCase(WshNetwork.ComputerName) 
11.
' Eine Verbindung zum AD wird hergestellt 
12.
' rootDSE ist das oberste Objekt in der AD-Hierarchie 
13.
' ggf. kann auch noch ein Server angegeben werden, ("LDAP://server/rootDSE") 
14.
Set objRootDSE = GetObject("LDAP://rootDSE") 
15.
' Vebindung zum Objekt strComputer in der OU strContainer im Bereich Users und Computer 
16.
Set objItem = GetObject("LDAP://cn=" & strComputer & "," & strContainer & "," & _ 
17.
   objRootDSE.Get("defaultNamingContext")) 
18.
' Für o.g. PC in benannter OU wird das Atrribut location und in die Variable geschrieben 
19.
strLocation = objItem.Get("location") 
20.
' Die Variable wird ausgewertet 
21.
' Wenn bei dem Computer kein Standort eingetragen ist, kommt ein Fehler 
22.
Select Case strLocation 
23.
Case "Raum1" 
24.
WshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV & "\Drucker1" 
25.
WshNetwork.SetDefaultPrinter "\\" & strPrintSRV & "\Drucker1"	 
26.
Case "Raum2" 
27.
WshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV & "\Drucker2" 
28.
WshNetwork.SetDefaultPrinter "\\" & strPrintSRV & "\Drucker2"	 
29.
Case Else 
30.
End Select
gemini
Bitte warten ..
Mitglied: Lownex
23.03.2006 um 07:06 Uhr
Hallo zusammen!

Ich möchte ein ähnliches Szenario realisieren. Ich habe dazu ein VBS Script geschrieben, dass einen freigegebenen Drucker anzieht. Wenn ich Ihn über eine GPO einer Benutzergruppe zuordne, funktioniert dies auch wunderbar. Jetzt habe ich versucht über eine GPO auf einem Computerkonto das script ausführen zu lassen - das funktioniert jedoch nicht.

Wofür gibt es in der Computerconfiguration in einer GPO denn eigentlich die Möglichkeit ein Startup Script auszuführen, wenn dies nicht ausgeführt wird? Es muss doch eine Möglichkeit geben, abhängig vom Computer einen Drucker zuzuweisen ohne ein 20-zeilen Script zu schreiben, oder? Wie wird das in großen Netzen gemacht, in denen man sich manchmal in Köln und manchmal in Düsseldorf anmeldet und natürlich immer einen lokalen Drucker benötigt...?
Bitte warten ..
Mitglied: Xaero1982
31.03.2006 um 07:33 Uhr
Wo liegt denn dein Login script das du in der GPO hinterlegt hast?

Doch nicht etwa auf
c:\scripts\logon.bat oder sowas?

das muss in den Ordner LETLOGON ... Im Windowsverzeichnis!
Bitte warten ..
Mitglied: Lownex
31.03.2006 um 15:03 Uhr
das liegt in dem Script-Verzeichnis der jeweiligen GPO. und wie gesagt, wenn ich das Script der Benutzerkonfiguration zuordne, dann funktioniert das...
Bitte warten ..
Mitglied: MisterIX
05.02.2009, aktualisiert 18.10.2012
Hallo Florian, ich bin kürzlich auf das selbe Problem gestoßen zumal eine Zuordnung der Drucker im Active Directory erst ab Server 2003 R2 möglich ist.
Daher habe ich ein Kixtart Skript geschrieben, dass die Active Directory Gruppen auslesen kann. Da ich bei meiner Recherche auf Deiner Seite gelandet bin, hinterlege ich hier einen Link auf meinen Artikel, damit andere davon profitieren können. Kixtart ist übrigens Freeware und kann umsonst im Netz heruntergeladen werden.

Hier der Link auf den Artikel: http://www.administrator.de/forum/skript-zur-automatischen-verteilung-v ...
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Per Skript lokal angeschlossene USB Drucker auslesen (7)

Frage von pixel0815 zum Thema Batch & Shell ...

Windows Userverwaltung
gelöst PS Skript AD Objekte auslesen (1)

Frage von m.reeger zum Thema Windows Userverwaltung ...

Windows Netzwerk
gelöst Powershell skript zum Auslesen der im AD angemeldeten User (2)

Frage von jan.kleinel zum Thema Windows Netzwerk ...

Exchange Server
GPO - Logon-Skript wird nicht ausgeführt (4)

Frage von Der-Phil zum Thema Exchange Server ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte
Netzwerke
DynDNS Dienst mit Mikrotik Router OS 6.4 (12)

Frage von Mopskiller zum Thema Netzwerke ...

Switche und Hubs
gelöst Cisco 2960x Stacking über mehrere Etagen (12)

Frage von b3scher zum Thema Switche und Hubs ...