Verbundene Netzwerkdruckers von AD-Benutzern herausbekommen

Aufgrund einer Drucker-Migration stand ich kürzlich vor der Frage, wie wir all die verbundenen Netzwerkdrucker unserer Anwender herausbekommen könnten, um die Zugehörigkeiten anschließend in Active Directory Gruppen überführen zu können. Bis dato hatten sich die Anwender die freigegeben Drucker auch selbst verbinden können.

Um nun von jedem Benutzer die Drucker herauszubekommen, habe ich mich mittels einem VBS-Skript bedient, dass ich im TechNet-Skriptcenter gefunden hatte. Dieses band ich dann leicht modifiziert in eine Gruppenrichtlinie bzw. in eine Anmeldeskript, dass mir an eine definierte Adresse per BLAT eine TXT-Datei schickte. Die entsprechenden Daten waren dann anschließend noch zusammenzuführen. Ein wenig Quick&Dirty, aber es erfüllte seinen Zweck:

List_Connected_Printers.VBS

Const ForWriting = 2
Set objNetwork = CreateObject("Wscript.Network")
strName = objNetwork.UserName
strDomain = objNetwork.UserDomain
strUser = strDomain & "\" & strName
strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
set shell = CreateObject("WScript.Shell")

Set colPrinters = objWMIService.ExecQuery _
    ("Select * From Win32_Printer Where Local = FALSE")

strComputer2 = shell.ExpandEnvironmentStrings("%Computername%")	

For Each objPrinter in colPrinters
    strText = strText & strComputer2 & ";" & strUser & ";" & objPrinter.Name & vbCrLf
Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
strPath = shell.ExpandEnvironmentStrings("%Appdata%")
strFileName = "Printers_" & strName & "_" & strComputer2 & ".txt"
strFullName = objFSO.BuildPath(strPath, strFileName)

Set objFile = objFSO.CreateTextFile _
    (strFullname, ForWriting, True)

objFile.Write strText

objFile.Close

Das Skript holt sich alle verbundenen Drucker des angemeldeten Benutzers, schreibt sie in eine Datei mit dem Muster %COMPUTERNAME%;%USERNAME%;%DRUCKER% und speichert sind als Printers_%USERNAME%_%COMPUTERNAME%.txt ab. Die Datei wird anschließend im Anwendungsdaten-Verzeichnis (%APPDATA%) abgelegt.

Das VBS-Skript wird dann mittels einer simplen Batch-Datei, die als Anmeldeskript fungiert, aufgerufen. Diese Batch-Datei enthält zudem einen BLAT-Befehl, um mir die erstellte TXT-Datei per Mail zuzuschicken:

ConPrin.cmd

REM #####################################################
REM Check all connected network printers of AD-USERS
REM 2011, http://www.tobbis-blog.de
REM #####################################################
IF EXIST "%Appdata%\Printers_%username%_%computername%.txt" goto Ende
CScript //Nologo %~dp0List_Connected_Printers.vbs
%~dp0blat -body "Connected Printers of %username% / %computername%" -server [SMTP-SERVER] -to [ZIEL-ADRESSE] -f [ABSENDER] -s "Connected Printers of %username% on %computername% (v2)" -attach "%appdata%\Printers_%username%_%computername%.txt"
:Ende

Wer neben einer solchen Skript-Lösung, einen eleganteren Weg kennt, möge bitte einen Kommentar hinterlassen, würde mich sehr interessieren.

AD Tidy–Active Directory übersichtlich durchsuchen

Mit dem kostenlosen Tool AD Tidy lässt sich das Active Directory problemlos zum Beispiel nach inaktiven Benutzern oder Computer durchsuchen.

AD Tidy - Tool für das Active Directory

Wobei ihr hier sogar auswählen könnt, ob ihr Eure gesamte Domain oder nur bestimmte OUs durchsuchen wollt.

AD Tidy: Einstellen der Suchoptionen

Die Ergebnisliste bzw. die Suche lässt sich durch weitere Parameter einschränken. Praktisch ist, dass ihr bei den gefundenen Benutzern und Computern auch direkt bestimmte Aktionen, wie das Deaktivieren oder das Hinzufügen/Entfernen zu/aus Gruppen durchführen könnt. Auch können mehrere Aktionen hintereinander (mit Variablen durchgeführt) werden.

AD Tidy: Durchführen mehrere Aktionen hintereinander, hier mit Variablen

Fazit

Insgesamt ein sehr praktische Tool, dass ich ganz klar empfehlen kann.

Active Directory visualisieren

Ein ziemlich geniales Tool, von dem ich neulich (erst) im IT Administrator gelesen habe, ist der Active Directory Toplogy Diagrammer, mit dem ihr Eure Domain und Sites visuell und automatisiert in Visio-Dateien darstellen könnt.

Active Directory Toplogy Diagrammer

Das Tool kann kostenlos bei Microsoft heruntergeladen werden und ist selbst nur knapp 1,5 MB groß. Voraussetzung ist allerdings .NET Framework und Microsoft Visio ab 2003.

In diversen Einstellmöglichkeiten könnt ihr nun auswählen, wie detailliert ihr Eure Umgebung visualisiert haben wollt.

Active Directory Toplogy Diagrammer: Ansicht in Microsoft VisioADTopDia-2

MCITP-Lehrgang: 5. Tag

Der Kurs 70-640 ist nun fast geschafft, nachdem gestern primär die Zertifikatsdienste des Active Directory (AD CS) im Vordergrund standen, setzte der heutige Kurstag darauf auf: Einrichten von Active Directory Rights Management Services (kurz: AD RMS; Active Directory-Rechteverwaltungsdienste) und dem anschließenden Testen der Funktionen mit Microsoft Office. Ich sag euch, mit begrenzten Hardware-Ressourcen, sprich dem Betreiben der 2008er-Maschine mit AD RMS, macht das nicht wirklich Spaß, ziemlich zäh. Der Server sollte also schon ordentlich Leistung haben, wenn ihr die AD RMS produktiv einsetzen wollt – und: anscheinend (wohl) auch nur im Einklang mit Microsoft Office möglich.

Der heutige abschließende Teil lag in der Vorbereitung für Morgen: Bereitstellung von Active Directory Federation Services (kurz AD FS; Active Directory-Verbunddienste), was wohl laut unserem Trainer eine große “Klickerei” werden wird. Ich bin gespannt 8-)