matobo
Goto Top

AD Anmeldung per Batch auslesen

Hallo Batch Spezies

folgende Frage an Euch...

Ich möchte gerne eine Lösung finden, die es mir ermöglicht,
bestimmte AD Userkonten zu protokollieren.

Dieses Protokoll soll mir dann per Mail zugesand werden.

Also z.b.

User otto meldet sich Montag morgen mit seinem AD Konto
an der Domäne an.
Wenn die Anmeldung erfolgreich war, soll es als Information an
eine bestimmte Email Adresse verschickt werden.

Schön wäre auch, wenn ich nicht nur des Userkontos, evtl auch noch das Computerkonto
loggen lassen könnte.

Danke für Eure Hilfe...

P.S. sollte es per Batch nicht gehen, so wäre ich für jede andere Lösung auch dankbar...

mfg
matobo

Content-ID: 150511

Url: https://administrator.de/forum/ad-anmeldung-per-batch-auslesen-150511.html

Ausgedruckt am: 22.12.2024 um 03:12 Uhr

Tigerbaby
Tigerbaby 07.09.2010 um 14:20:03 Uhr
Goto Top
Tach!

Ich hab das mit Kix realisiert. geht prima!

Hier das Skript (hab ich übrigens über das Forum gefunden, einfach mal danach suchen!)


Skriptanfang:
SETCONSOLE("hide")
SETCONSOLE("maximized")
SETTITLE("Anmeldeskript für Meine Domäne")
;
; Variablen deklarieren
;
$FileServer="192.168.0.1"
; ### Name des Servers auf welchem sich die Freigaben befinden
; ### alternativ kann auch natürlich auch eine IP-Adresse angegeben werden
;
$ProtokollServer="192.168.0.1"
; ### Name des Servers auf welchem die Freigabe für die Dokumentation
; ### der An- und Abmeldungen sowie der Rechner Infos liegt
;
$PrintServer="192.168.0.1"
; ### Name des Servers auf welchem (falls vorhanden) die Drucker
; ### eingerichtet und freigegeben sind die verbunden werden sollen
;
; *
; Hardware Informationen auslesen
; *
;
; ### Ausgabe auf die Datei "Rechnername_info.txt" umleiten anstelle des Bildschirmes
$result=ReDirectOutput ("\\"+$ProtokollServer+"\login$\"+@Hostname+"_info.txt" ,1)
;
; ### Ab jetzt werden alle Printanweisungen in die Datei "Rechnername_info.txt" ausgegeben
? "Stand "@DATE" - "@TIME
? ""
? "* Rechner Information *"
?"NetBIOS Name: "@WKSTA
?"Letzter Login von: "@USERID
?"OS: "@PRODUCTTYPE" with "@CSD
?"CPU Modell: " @cpu
?"CPU Takt: "@MHZ " MHz"
?"Speicher: "MemorySize(0)" MB"
?"IP Adresse: " @ipaddress0
?"IP Adresse: " @ipaddress1
?"MAC Adresse: "@ADDRESS
?""
;

:Login
;
;
; Login Informationen pro User
;
;
; ### hier wird die Ausgabe wieder auf die Protokoll Datei für den jeweiligen Tag umgeleitet
$result=ReDirectOutput ("\\"+$ProtokollServer+"\login$\Anmeldungen " + @year + "."+ @monthno + "." + @mdayno + ".txt" ,0)
;
; ### jetzt wird geprüft ob die Datei bereits existiert, wenn ja wird der Header nicht noch einmal in die Datei geschrieben
; ### da dieser bereits vorhanden ist.
$logExist=Exist("\\"+$ProtokollServer+"\login$\Anmeldungen " + @year + "."+ @monthno + "." + @mdayno + ".txt")
if $logExist = 0
? "+-------------------------------------------------------------------------------------------------+"
? "¦Benutzername ¦ Client ¦ Datum ¦ Uhrzeit ¦ Anmeldeserver ¦ i=login o=logout¦"
? "¦-------------+----------------------+------------+----------+------------------+-----------------¦"
endif
$user = @userid+left(" ",(13-len(@userid)))
$client = @wksta+left(" ",(20-len(@WKSTA)))
$lserver = @lserver+left(" ",(18-len(@LSERVER)))
$lserver = right($lserver,(len($lserver)-2))
? "¦"$user"¦ "$client" ¦ "@DATE" ¦ "@TIME" ¦ "$lserver" ¦ i ¦"
Exit
</font>
Ende Login.kix<<

Logoff.kix<<-- Ab hier den Inhalt markieren und in die Datei logoff.kix kopieren.
; *
; Logoff Informationen pro User
; *
;
$result=ReDirectOutput ("\\"+$ProtokollServer+"\login$\Anmeldungen " + @YEAR + "."+ @MONTHNO + "." + @MDAYNO + ".txt" ,0)  
$logExist=Exist("\\"+$ProtokollServer+"\login$\Anmeldungen " + @YEAR + "."+ @MONTHNO + "." + @MDAYNO + ".txt")  
if $logExist = 0
  ? "+-------------------------------------------------------------------------------------------------+"  
  ? "¦Benutzername ¦ Client ¦ Datum ¦ Uhrzeit ¦ Anmeldeserver ¦ i=login o=logout¦"  
  ? "¦-------------+----------------------+------------+----------+------------------+-----------------¦"  
endif
$user = @userid+left(" ",(13-len(@userid)))  
$client = @WKSTA+left(" ",(20-len(@WKSTA)))  
$lserver = @LSERVER+left(" ",(18-len(@LSERVER)))  
$lserver = right($lserver,(len($lserver)-2))
? "¦"$user"$client" ¦ "@DATE" ¦ "@TIME" ¦ "$lserver" ¦ o ¦"  
Ende Logoff.kix<<

Funktion zum entfernen der Leerzeichen in der IP Adresse<<

Den Code <?"IP Adresse: " @ipadress0> mit diesem ersetzen.

; ### Dieser Code entfernt Leerzeichen aus der @IPADRESS0
$a = 0
$Myarray = Split(@IPADDRESS0 , " ")  
For Each $Element In $MyArray
if $a = 0
$IP0 = $Element
endif
if $a= 1
$IP1= $Element
endif
if $a= 2
$IP2= $Element
endif
if $a = 3
$IP3 = $Element
endif
if $a = 4
$IP4 = $Element
endif
if $a = 5
$IP5 = $Element
endif
if $a = 6
$IP6 = $Element
endif
if $a= 7
$IP7 = $Element
endif
if $a= 8
$IP8 = $Element
endif
if $a = 9
$IP9 = $Element
endif
if $a = 10
$IP10 = $Element
endif
$a = $a + 1
Next
?"IP Adresse: " + +$IP0 + $IP1 + $IP2 + $IP3 + $IP4 + $IP5 + $IP6 + $IP7 + $IP8 + $IP9 + $IP10  
Skriptende:


Es kommen dann 2 Dateien raus, deren Inhalt ungefär so aussehen:

¦mueller ¦ verwaltung02 ¦ 2010/09/07 ¦ 06:36:35 ¦ ANMELDESERVER ¦ i ¦
¦maier ¦ lager04 ¦ 2010/09/07 ¦ 08:02:01 ¦ ANMELDESERVER ¦ i ¦

(Das i am Ende steht für "Log in"!)

und die PC-Info:

Stand 2010/06/15 - 16:55:24

  • Rechner Information *
NetBIOS Name: verwaltung02
Letzter Login von: mueller
OS: Windows XP Professional with Service Pack 2
CPU Modell: Intel(R) Celeron(R) CPU 2.80GHz
CPU Takt: 2796 MHz
Speicher: 1014 MB
IP Adresse: 192.168. 0.119
MAC Adresse: 001389DF73F1


Den Inhalt der Dateien oder die Dateien selbst kann man dann ja zB. mit "blat" per Mail versenden!


Grüße, Tom
DerWoWusste
DerWoWusste 07.09.2010 um 17:10:25 Uhr
Goto Top
Hi.
Man kann per GPO am DC einstellen, dass Anmeldeereignisse geloggt werden. Ebenso, dass der Server Aktionen durchführt beim Loggen bestimmter Ereignisse, zum Beispiel Mailversand.
matobo
matobo 08.09.2010 um 08:35:19 Uhr
Goto Top
hallo DerWoWusste

das klingt interessant...

Kannst Du mir es bitte genau schildern, wie ich was und wo einstellen muss ??

Danke
DerWoWusste
DerWoWusste 08.09.2010 um 09:50:50 Uhr
Goto Top
Anmeldungen loggen ist eh evtl. schon eingestellt. Führ zunächst mal ein rsop.msc am DC aus, um das rauszufinden. Ist es nicht eingestellt, Verändere in einer auf DCs angewendeten GPO die Überwachungseinstellungen dahingehend.
Resultat ist, dass die Anmeldungen nun im Sicherheitsprotokoll des Servers auflaufen. Dort kannst Du (bei 2008 Server) Aktionen an bestimmte Events anhängen (der Eventviewer erstellt somit geplante Tasks, die eventgetriggert sind). Man rechtsklickt also so ein Event und wählt "attach task to this event". Bei 2003 Server muss man die eventtriggers.exe (von der Kommandozeile) bemühen, um selbiges zu erreichen.
matobo
matobo 08.09.2010 um 12:04:58 Uhr
Goto Top
sodele... die Anmeldungen werden nun geloggt... danke schon mal dafür..

Nun möchte ich bestimmte Anmeldeereignisse per Mail zugeschickt bekommen.

Also z.b.

Eigenschaften von Ereigniss:

Kategorie: Kontoanmeldung
Typ: Erfolgsüberwachung
Ereignisskennung: 680
Benutzer: testdomain\otto


wie oder was muss ich machen, damit mir alle Ereignisse dieser Kennung für diesen User
per Mail zugeschickt werden ??
DerWoWusste
DerWoWusste 08.09.2010 um 12:26:13 Uhr
Goto Top
Einen eventgetriggerten Task hast Du schon wie beschrieben erstellt? Dann kannst Du den noch editieren (erweiterte Einstellungen setzen). Ich hab ein Bild dazu hochgeladen. Dort kann man auch nach Keywords wie dem Benutzernamen filtern. http://250kb.de/apc46tQ
matobo
matobo 08.09.2010 um 12:36:15 Uhr
Goto Top
sorry - aber ich habe mit einem eventgetriggerten Task noch nie zu tun gehabt.
Es wäre mein erster...

Also wäre ich für ne detaillierte Anleitung sehr dankbar.

Evtl. kannst du mir anhand der oben genannten Daten, diesen eventgetriggerten Task mal definieren.??!!

danke
DerWoWusste
DerWoWusste 08.09.2010 um 12:53:33 Uhr
Goto Top
Du hast eine genau Beschreibung erhalten. Wo bleibst Du denn stecken? Öffne den Eventviewer und nimm Dir so ein Anmeldeereignis. Dann Rechtsklick und das deutsche Pendant zu "attach task to this event" wählen. Am Ende die erweiterten Eigenschaften des Tasks anzeigen lassen und wie in der Abbildung zu sehen weitere Einstellungen konfigurieren.
matobo
matobo 08.09.2010 um 14:11:32 Uhr
Goto Top
ich hänge im DOS Fenster bei den Parametern zu eventtriggers exe

ich bräuchte den genauen Befehl anhand der Daten von oben... User otto und ID 680
DerWoWusste
DerWoWusste 08.09.2010 um 14:21:44 Uhr
Goto Top
eventtriggers kann zwar Event-ID-abhängig arbeiten, aber nicht nach Begriffen wie "otto" filtern - so wird das also nichts. Eine weitere Möglichkeit ist snare, eine Freeware von intersect alliance, der kann bei bestimmten keywords handeln - jedoch verschickt der keine Mails, sondern leitet events an einen Syslogserver weiter (welcher dann seinerseits daraus Mails machen müsste). Vielleicht doch lieber ThomasBergers Skript?