Hallo zusammen,
bin neu hier im Forum und hab auch gleich eine Frage (ich hoffe ich bin hier richtig).
Ich habe mir ein Vbscript aus ein paar Komponenten zusammengestellt um AD-Daten auszulesen und in eine Excel Tabelle zu schreiben.
Jetzt bin ich aber völlig am verzweifeln, da mir nur Konten angezeigt werden in denen das Feld Beschreibung nicht ausgefüllt ist.
Da ich noch ein Vbscript Neuling bin kann ich mir dies auch nicht erklären.
Wäre super dankbar für Hilfe
Dies ist mein Code
Spoiler anzeigen
Edit by hal2000:
- Code-Tags gesetzt
- Expander eingefügt
bin neu hier im Forum und hab auch gleich eine Frage (ich hoffe ich bin hier richtig).
Ich habe mir ein Vbscript aus ein paar Komponenten zusammengestellt um AD-Daten auszulesen und in eine Excel Tabelle zu schreiben.
Jetzt bin ich aber völlig am verzweifeln, da mir nur Konten angezeigt werden in denen das Feld Beschreibung nicht ausgefüllt ist.
Da ich noch ein Vbscript Neuling bin kann ich mir dies auch nicht erklären.
Wäre super dankbar für Hilfe
Dies ist mein Code
Visual Basic-Quellcode
- Const xlAnd = 1 ' Enum XlAutoFilterOperator
- Const xlOr = 2
- Const xlTop10Items = 3
- Const xlBottom10Items = 4
- Const xlTop10Percent = 5
- Const xlBottom10Percent = 6
- Const xlAscending = 1 ' Enum XlSortOrder
- Const xlDescending = 2
- Const xlSortColumns = 1 ' Enum XlSortOrientation
- Const xlSortRows = 2
- Const xlSortNormal = 0 ' Enum XlSortDataOption
- Const xlSortTextAsNumbers = 1
- Const msoScaleFromTopLeft = 0 ' Enum MsoScaleFrom
- set strRootDSE = GetObject ("LDAP://rootDSE")
- Set wso = CreateObject("Wscript.Shell")
- '_____________________________________________________________________________ Excel starten
- Set xlo = CreateObject("Excel.Application")
- xlo.Visible = True
- '_______________________________________________________________________________ Auswahl der Domäne
- 'wscript.echo "Loading Domains at LDAP://CN=Partitions," & strRootDSE.get ("configurationNamingContext")
- set opartition = GetObject("LDAP://CN=Partitions," & strRootDSE.get ("configurationNamingContext"))
- for each oDomain in opartition
- if oDomain.netbiosname = "" then
- REM REM 'wscript.echo "Skip Domain: " & oDomain.dnsroot
- else
- REM REM 'wscript.echo "Processing Domain: " & oDomain.dnsroot
- call ParseDomain(oDomain.dnsroot)
- end if
- next
- '______________________________________________________________________________ Sub xlsFill
- 'Füllt eine Zeile in einem Excel-Sheet mit Werten, die als Doppelpunkt String übergeben werden
- 'vars xls: excel worksheet
- ' col: column number
- ' values: semicolon-separated string
- '
- Sub xlsFill(byRef xls, col, values)
- Dim v, i
- v = Split(values, ":")
- For i=0 To UBound(v)
- xls.Cells(col, i+1) = v(i)
- Next
- End Sub
- sub ParseDomain(strdomainname)
- dim x
- x=2
- wscript.echo "Folgende Domäne wird aus dem AD ausgelesen:" & strdomainname
- Set oConnection = CreateObject("ADODB.Connection")
- Set oRecordset = CreateObject("ADODB.Recordset")
- Set oCommand = CreateObject("ADODB.Command")
- oConnection.Provider = "ADsDSOObject" 'The ADSI OLE-DB provider
- oConnection.Open "ADs Provider"
- oCommand.ActiveConnection = oConnection
- oCommand.Properties("Page Size") = 100
- oCommand.CommandText = "<LDAP://" & strdomainname & "/dc=Domäne,dc=de>;" & _
- "(mailnickname=*);" & _
- "distinguishedName,extensionAttribute1,displayName,department,mail,descrition,initials,description,samAccountName,objectClass,userPrincipalName,memberof" & _
- ";subtree"
- Set oRecordset = oCommand.Execute
- 'wscript.echo "Done Total Records found:" & oRecordset.recordcount
- Set xlw = xlo.Workbooks.Add()
- xlw.Sheets(1).Name = "Benutzer dicvm"
- '_____________________________________________________________________________ Arbeit in einem Sheet
- Set xls = xlw.Sheets(1)
- xls.Cells(1,1) = "1"
- xls.Cells(1,2) = "2"
- xls.Cells(1,5) = "5"
- xls.Cells(1,4) = "4"
- xls.Cells(1,3) = "3"
- With xlw.Sheets(1).Columns(1)
- .ColumnWidth = 45
- End With
- With xlw.Sheets(1).Columns(2)
- .ColumnWidth = 20
- End With
- With xlw.Sheets(1).Columns(5)
- .ColumnWidth = 50
- End With
- With xlw.Sheets(1).Columns(4)
- .ColumnWidth = 15
- End With
- With xlw.Sheets(1).Columns(3)
- .ColumnWidth = 10
- End With
- do until oRecordset.EOF
- '_____________________________________________________________________________ Umgang mit Excel Sheets
- xls.Cells(x,1) = oRecordset.Fields("displayName")
- xls.Cells(x,2) = oRecordset.Fields("samAccountName")
- xls.Cells(x,3) = oRecordset.Fields("department")
- xls.Cells(x,4) = oRecordset.Fields("extensionAttribute1")
- xls.Cells(x,5) = oRecordset.Fields("description")
- oRecordset.MoveNext
- x = x + 1
- loop
- msgBox ("Es wurden "& oRecordset.recordcount & " AD-Konten gefunden")
- end sub
Edit by hal2000:
- Code-Tags gesetzt
- Expander eingefügt
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()