Top-Themen

Aktuelle Themen (A bis Z)

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

Benutzerdaten per Batch oder VB aus AD auslesen

Frage Microsoft Windows Server

Mitglied: ostseebenni

ostseebenni (Level 1) - Jetzt verbinden

23.05.2007, aktualisiert 24.05.2007, 14855 Aufrufe, 5 Kommentare

Hallo liebe Leute,

Nun Google ich schon seid 4h im Inet rum und finde einfach keine eindeutige Antwort.
Folgendes Problem:

Ein Benutzer ist mit seinem Clientpc an einem Active Directory angemeldet der seine gesamten benutzerdaten herausfindet.
Die Benutzerrechte liegen so dass der Benutzer keine Mails verschicken kann.
Er hat jedoch auch nicht die Möglichkeit einen Drucker anzuschließen um Dateien zu drucken.
Hierfür hab ich mir den PDFmailer heruntergeladen der die zu druckende Datei als Pdf speichert.
Nun soll per Batch oder VB oder ähnlichem eine Mail via CMD verschickt werden.
Und zwar an den angemeldeten User. Bei der nächsten Sitzung ist dies aber vll wieder ein ganz anderer User mit einer anderen Emailadresse sodass keine feste adresse als parameter angegeben kann.

Wie also lese ich aus den Userprofilen einer Ad einzelne Komponenten aus und speichere sie zur weiterverarbeitung in Variablen?

LG
Benni
Mitglied: gemini
23.05.2007 um 12:32 Uhr
Sorry, aber so ganz verstanden hab ich nicht, was du willst. Nur das eine Mail an unterschiedliche Adressaen per CMD versandt werden soll.
Evtl. solltest du die Satzstellung deines Postings nochmals überdenken.

Nun, ein Script das u.a. die Mailadresse ausliest:
List User Account General Page Properties

Zwei Scripte, das Mails verschicken können einmal mit, einmal ohne SMTP
Send Email from a Script
Send Email without Installing the SMTP Service
(Quellen: Microsoft TechNet Script Repository)

Blat, ein commandline mailer

HTH,
gemini
Bitte warten ..
Mitglied: ostseebenni
23.05.2007 um 13:12 Uhr
also eigentlich will ich nur die emailadresse des angemeldeten user auslesen und diese als empfängeradresse an den blat anhängen
Bitte warten ..
Mitglied: Biber
23.05.2007 um 22:32 Uhr
Moin ostseebenni,
also eigentlich will ich nur die emailadresse des angemeldeten user auslesen und diese als empfängeradresse an den blat anhängen
Aber gemini wollte Dich auch gar nicht zwingen, die Beispielskripte en bloc zu übernehmen....
Lösungsvorschlag:
Dann lies doch einfach nur die Mail-Adresse des angemeldeten Users aus, hänge diese als Empfängeradresse an das Blat an... und ignorier die anderen Infos einfach.

Oder besser: poste den Schnipsel, den Du Dir jetzt zusammengeCopy&Paste't hast und lass es uns gegenprüfen.

Gruß
Biber
Bitte warten ..
Mitglied: ostseebenni
24.05.2007 um 10:26 Uhr
01.
strLDAP = SAM2ADInfo("NilsK", "mail") 
02.
 
03.
function SAM2ADInfo(strSAMName, strField) 
04.
' Funktion: Übersetzt den übergebenen SAMAccountName per ADS-Abfrage in ein beliebiges ADS-Feld 
05.
' Eingabeparameter: strSAMName: Der NT-Anmeldename; strField: ADSI-Name des erwarteten Feldes 
06.
' Rückgabewert: Der gefundene Wert oder ein Leerstring 
07.
 
08.
    Dim objConn 
09.
    Dim objCommand 
10.
    dim objArgs 
11.
 
12.
    On Error Resume Next 
13.
 
14.
 
15.
    'Create ADO connection object for Active Directory 
16.
    Set objConn = CreateObject("ADODB.Connection") 
17.
    objConn.Provider = "ADsDSOObject" 
18.
    objConn.Open "Active Directory Provider" 
19.
    if checkit("Fehler beim ADO-Zugriff auf Active Directory!") then exit function 
20.
 
21.
    'Create ADO command object for the connection. 
22.
    Set objCommand = CreateObject("ADODB.Command")  
23.
    objCommand.ActiveConnection = objConn 
24.
    if checkit("Fehler beim Definieren des ADO-Kommandos!") then exit function 
25.
 
26.
    'Get the ADsPath for the domain to search. 
27.
    Set objRoot = GetObject("LDAP://rootDSE") 
28.
    strDomain = objRoot.Get("defaultNamingContext") 
29.
    Set objDomain = GetObject("LDAP://" & strDomain) 
30.
    if checkit("Fehler beim Ansprechen des Active Directory!") then exit function 
31.
 
32.
    'Abfrage 
33.
    strSQL = "SELECT " & strField & " FROM '" 
34.
    strSQL = strSQL & "LDAP://" & strDomain & "' WHERE sAMAccountName = '" & strSAMName & "'" 
35.
 
36.
    'Assemble the commandtext. 
37.
    objCommand.CommandText = strSQL 
38.
    if checkit("Fehler beim Übergeben des Kommandos!") then exit function 
39.
 
40.
    'Execute the query. 
41.
    Set objRS = objCommand.Execute 
42.
    if checkit("Fehler beim Ausführen der Suche im Active Directory!") then exit function 
43.
 
44.
    strOutput = "" 
45.
    strOutput = objRS.Fields(0).value 
46.
 
47.
    on error goto 0 
48.
 
49.
    SAM2ADInfo = strOutput 
50.
 
51.
end function 
52.
 
53.
 
54.
' Fehlerprüfung 
55.
function checkit(Nachricht) 
56.
	checkit = false 
57.
	if err.number <>0 then 
58.
		Nachricht = Nachricht & " [" & err.description & " (" & err.number & ")]" 
59.
                wscrip.echo Nachricht 
60.
		err.clear 
61.
		checkit=true 
62.
	end if 
63.
end function
Dieses Script habe ich aus einem andere Forum.
Meines eractens nach soll dies die Mailadresse auslesen.
Der Name des DC ist ctpdc in der domain ct.local, der wie ich denke bei Active Directory Provider eingetragen werden soll. Wo aber noch???
Zudem habe ich versucht das Script auszuführen jedoch die Rückmeldung eines Scriptfehler gleich am Anfang bekommen wie also führe ich dies aus und wie wird die VAriable an die Batch-Datei übergeben???
Bitte warten ..
Mitglied: Biber
24.05.2007 um 20:58 Uhr
Moin ostseebenni,

okay, dann lass uns aber bitte schrittweise vorgehen.
Wir haben nun zweieinhalb Tage gebraucht, um vom Thema "Benutzerdaten aus AD auslesen" im Bereich "Windows Server" wieder runterzukommen auf "Mailadresse des angemeldeten Users ermitteln".... da kommt es jetzt auf zwei Minuten mehr auch nicht an.

Zu "in anderen Foren gefundenen Scripten", die "Scriptfehler gleich am Anfang bekommen" möchte ich eigentlich jetzt nichts schreiben... das überlass ich mal Deiner Phantasie, was mir jetzt vielleicht auf der Zunge liegen könnte.

Eine kurzer biooptical scan, wie es in meiner Branche heißt, lässt zumindest zwei Sachen rot aufleuchten bei diesem Findelscript:

1.
In der Function checkit() ist die Zeile
01.
.... 
02.
wscrip.echo Nachricht
...etwas, was scho früher zu DOS-Interrupt-Zeiten bei M$ eine eigene Fehlernummer hatte:
"Error in the Errorhandler"
Ergänze dort mal das fehlende "t", also schreib "wscrip.echo Nachricht".
Dann bekommst Du auch einige der Fehler angezeigt.

2.
Is' sich ja schon fein, dass die ermittelte Mailaddy nun 5x von Variable zu Variable umkopiert wird, aber vielleicht solltest Du nach dem ermitteln auch irgendetwas damit machen....
Sogar einfach nur Anzeigen wäre schon eine Verbesserung.

Einmal grob durchgeharkt sieht der Schnipsel dann so aus:
01.
wscript.echo  SAM2ADInfo("NilsK", "mail") 
02.
' später mal:  wscript.echo  SAM2ADInfo(wscript.arguments(0), "mail") 
03.
'------ 
04.
function SAM2ADInfo(strSAMName, strField) 
05.
' Funktion: Übersetzt den übergebenen SAMAccountName per ADS-Abfrage  
06.
'                in ein beliebiges ADS-Feld 
07.
' Eingabeparameter: strSAMName: Der NT-Anmeldename;  
08.
'                                strField: ADSI-Name des erwarteten Feldes 
09.
' Rückgabewert: Der gefundene Wert oder ein Leerstring 
10.
 
11.
Dim objConn, objRS, objCommand 
12.
Dim objRoot, objDomain 
13.
On Error Resume Next 
14.
 
15.
'Create ADO connection object for Active Directory 
16.
Set objConn = CreateObject("ADODB.Connection") 
17.
objConn.Provider = "ADsDSOObject" 
18.
objConn.Open "Active Directory Provider" 
19.
if checkit("Fehler beim ADO-Zugriff auf Active Directory!") then exit function 
20.
 
21.
'Create ADO command object for the connection. 
22.
Set objCommand = CreateObject("ADODB.Command")  
23.
objCommand.ActiveConnection = objConn 
24.
if checkit("Fehler beim Definieren des ADO-Kommandos!") then exit function 
25.
 
26.
'Get the ADsPath for the domain to search. 
27.
Set objRoot = GetObject("LDAP://rootDSE") 
28.
strDomain = objRoot.Get("defaultNamingContext") 
29.
Set objDomain = GetObject("LDAP://" & strDomain) 
30.
if checkit("Fehler beim Ansprechen des Active Directory!") then exit function 
31.
 
32.
'Abfrage 
33.
strSQL = "SELECT " & strfield & " FROM '" 
34.
strSQL = strSQL & "LDAP://" & strDomain & "' WHERE sAMAccountName = '" & strSAMName & "'" 
35.
wscript.echo "[Debug1] " & StrSQL 
36.
'Assemble the commandtext. 
37.
objCommand.CommandText = strSQL 
38.
if checkit("Fehler beim Übergeben des Kommandos!") then exit function 
39.
 
40.
'Execute the query. 
41.
Set objRS = objCommand.Execute 
42.
if checkit("Fehler beim Ausführen der Suche im Active Directory!") then exit function 
43.
 
44.
Wscript.echo "[Debug2] " & objRS.Fields(strfield).value 
45.
SAM2ADInfo = objRS.Fields(strfield).value 
46.
on error goto 0 
47.
 
48.
end function 
49.
 
50.
' Fehlerprüfung 
51.
function checkit(Nachricht) 
52.
checkit = false 
53.
if err.number <>0 then 
54.
    Nachricht = Nachricht & " [" & err.description & " (" & err.number & ")]" 
55.
    wscript.echo Nachricht 
56.
    err.clear 
57.
   checkit=true 
58.
end if 
59.
end function
3.
...wobei die erste Zeile eigentlich später nicht heißen sollte..
01.
wscript.echo  SAM2ADInfo("NilsK", "mail") 
02.
' ...sondern...  
03.
wscript.echo  SAM2ADInfo(wscript.arguments(0), "mail")
denn dann kannst Du den Schnipsel aus einem Batch heraus aufrufen mit
01.
cscript //nologo getUsersMail.vbs %username% 
02.
:: ... und das Ganze noch mal einwickeln in eine FOR /F-Anweisung. 
03.
for /f %%i in ('cscript //nologo getUsersMail.vbs %username%') do set usersmail=%%i
Aber so weit sind wir noch nicht, bitte schau mal, wie weit Du jetzt mit der angepassten Skizze kommst und poste ggf. die Fehlermeldung.

Dann machen wir weiter.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Microsoft
Synchronisation - Benutzerdaten
Frage von Timi97Microsoft1 Kommentar

Hallo zusammen, ich habe ein Frage zur Synchronisierung von Benutzerdaten. Bei uns besitzt jeder einen Desktop & Laptop. Jeder ...

Entwicklung
VB Windows Key aus Regestry auslesen
gelöst Frage von 122925Entwicklung2 Kommentare

Hallo, ich würde gerne Sachen aus der Regestry auslesen und in eine Textbox ausgeben. Danke

Entwicklung
VB Script gesucht um Videodateien auslesen zu können.
gelöst Frage von templierEntwicklung7 Kommentare

Hallo zusammen, ich habe einen Kunden der auf seinem SAN hunderte von Präsentationsvideos angesammelt hat. Diese sollen nun in ...

Windows Userverwaltung
AD Gruppen User auslesen
Frage von pgWindows Userverwaltung1 Kommentar

Guten Tag, ich bin auf der Suche nach einem Programm welches mit die User eines AD ausliest und mir ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 13 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 15 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Batch & Shell
Neuste Datei via PowerShell kopieren
gelöst Frage von kaiuwe28Batch & Shell11 Kommentare

Hallo zusammen, ich hatte mir mit Hilfe der Suche im Forum einen kleinen Code von colinardo rausgesucht und versucht ...