An domäne angemeldete User
Hallo,
hab die etlichen Beiträge in dem Forum zu diesem Thema gelesen aber, so das 100 %ige war für mich nicht dabei...
Mache gerad ein Praktikum, meine Aufgabe ist es alle an der Domäne !!angemeldeten!! User + LogOn + LogOff Zeiten aus dem Active Directory auszulesen und in eine Datei zu schreiben. Da ich gerade erst frisch aus der schule bin fehlts mir noch an fachwissen...
Ich würde das gern mit einer kleinen VBS File über ldap lösen. Wenn jem. diesbezüglich schon ein ähnl. script hat oder nen guten link...*G* lieber das script da ich ehrlich gesagt keine ahnung habe....
MFG
hab die etlichen Beiträge in dem Forum zu diesem Thema gelesen aber, so das 100 %ige war für mich nicht dabei...
Mache gerad ein Praktikum, meine Aufgabe ist es alle an der Domäne !!angemeldeten!! User + LogOn + LogOff Zeiten aus dem Active Directory auszulesen und in eine Datei zu schreiben. Da ich gerade erst frisch aus der schule bin fehlts mir noch an fachwissen...
Ich würde das gern mit einer kleinen VBS File über ldap lösen. Wenn jem. diesbezüglich schon ein ähnl. script hat oder nen guten link...*G* lieber das script da ich ehrlich gesagt keine ahnung habe....
MFG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 31327
Url: https://administrator.de/contentid/31327
Ausgedruckt am: 25.11.2024 um 06:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
mit diesem VBScript kannst du mal auslesen, wann er sich das letzte mal angemeldet hat. Das Ergebnis wird in einer Exceltabelle ausgegeben!
Dann brauchst du noch eine txt - Datei im gleichen Ordner wie was vbs. Diese muss so aussehen:
Damit gibst du an, welche Organisationseinheit gescannt werden kann.
Gruß
Dani
mit diesem VBScript kannst du mal auslesen, wann er sich das letzte mal angemeldet hat. Das Ergebnis wird in einer Exceltabelle ausgegeben!
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Add
'Set objWorkbook = objExcel.Workbooks.Add
Set objWorksheet = objWorkbook.Worksheets(3)
Set colSheets = objWorkbook.Sheets
'#######################################
' Auslesen der Textdatei - Darin stehen die OU Gruppen
'#######################################
Dim arrFileLines()
i = 0
Set objFile = objFSO.OpenTextFile("ou.txt", 1)
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
'#######################################
'#######################################
'colSheets.add ,objWorksheet,b
x = 2
oucount = 1
mustchangepw = 1
ischangedpw = 1
For l = Ubound(arrFileLines) to LBound(arrFileLines) Step -1
'x = 3
Set objWorksheet = objWorkbook.Worksheets(1)
objWorksheet.Activate
'#############################################################
'Erstelllt die Überschriften in der Exceldatei
'#############################################################
objExcel.ActiveSheet.Cells(1, 1).Value = "Name"
objExcel.ActiveSheet.Cells(1, 2).Value = "Benutzername"
objExcel.ActiveSheet.Cells(1, 3).Value = "Organisationeinheiten"
objExcel.ActiveSheet.Cells(1, 4).Value = "Letzter Login"
'#############################################################
'Passt die Spaltenbreite der jeweiligen Überschrift an
'#############################################################
objExcel.ActiveSheet.Cells(1, 1).ColumnWidth = 16
objExcel.ActiveSheet.Cells(1, 2).ColumnWidth = 20
objExcel.ActiveSheet.Cells(1, 3).ColumnWidth = 30
objExcel.ActiveSheet.Cells(1, 4).ColumnWidth = 25
'#############################################################
'Dekl. von Konstanten
'#############################################################
Const ADS_UF_ACCOUNTDISABLE = 2
Const ADS_UF_PASSWORD_EXPIRED = &h800000
Const ADS_ACETYPE_ACCESS_DENIED_OBJECT = &H6
Const CHANGE_PASSWORD_GUID = "{ab721a53-1e2f-11d0-9819-00aa0040529b}"
Set objHash = CreateObject("Scripting.Dictionary")
objHash.Add "ADS_UF_DONT_EXPIRE_PASSWD", &h10000
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"<GC://" & arrFileLines(l) & ">;(objectCategory=User)" & _
";userAccountControl,distinguishedName,cn;subtree"
Set objRecordSet = objCommand.Execute
Do Until objRecordset.EOF
intUserAccountControl = objRecordset.Fields("userAccountControl")
If NOT intUserAccountControl AND ADS_UF_ACCOUNTDISABLE Then
For Each Key In objHash.Keys
'#############################################################
'Auslesen der Infos und erzeugen des Excelinhalts
'#############################################################
set objuser = getObject ("LDAP://" & objRecordset.Fields("distinguishedName").value)
lastlogon = objuser.LastLogin
dtmValue = objuser.PasswordLastChanged
dnName = objRecordset.Fields("distinguishedName").value
dnnamesumcount = Len(dnname)
dnnamecount = InStr(1,dnname,"OU")
cut = dnnamesumcount - dnnamecount
dncut = Right(dnname, cut)
TF.WriteLine("WYDLER\" + objuser.sAMAccountName)
objExcel.ActiveSheet.Cells(x, 1).Value = objuser.cn 'cnName
objExcel.ActiveSheet.Cells(x, 2).Value = objuser.sAMAccountName
objExcel.ActiveSheet.Cells(x, 3).Value = dncut 'arrFileLines(l)
objExcel.ActiveSheet.Cells(x, 4).Value = lastlogon
x = x + 1
Next
End If
objRecordset.MoveNext
Loop
objConnection.Close
oucount = oucount + 1
Next
Set objRange = objWorksheet.UsedRange
objRange.EntireColumn.Autofit()
objExcel.Close
wscript.echo "Fertig!"
ou=ORGEINHEIT,dc=DOMÄNE
Gruß
Dani
Hi,
wenn du mir sagst, wenn in welcher Domäne du welche OU Einheit auslesen möchtest dann erstell ich dir mal n Beispiel draus. Das mit der Textdatei hat den Sinn, wenn du mehere Domänen bzw. OU-Einheiten durchsuchen möchtest.
Es kann ja auch nix kommen, da er deine Domäne oder OU vielleicht nicht findet!!
Gruß
Dani
wenn du mir sagst, wenn in welcher Domäne du welche OU Einheit auslesen möchtest dann erstell ich dir mal n Beispiel draus. Das mit der Textdatei hat den Sinn, wenn du mehere Domänen bzw. OU-Einheiten durchsuchen möchtest.
Es kann ja auch nix kommen, da er deine Domäne oder OU vielleicht nicht findet!!
Gruß
Dani