yalcin
Goto Top

VB Script für AD User exportieren

Hallo

Ich habe ein Problem mit einem VB script, ich will das das Script alle Benutzer sammt attribute aus einer einzigen OU ausliest und sie in eine exel datei schreibt, habe da auch ein schönes script bei technet gefunden doch leider sucht es alle benutzer aber ich will das nur die Benutzer die in der OU xyz drine sind exportiert, kann einer mir dabei helfen ich abselut kein VB script man,

SET objRootDSE = GETOBJECT("LDAP:RootDSE")
strExportFile = "C:\MyExport1.xls"

strRoot = objRootDSE.GET("DefaultNamingContext")
strfilter = "(&(objectClass=user))"
strAttributes = "sAMAccountName,userPrincipalName,givenName,sn," & _
"initials,displayName,physicalDeliveryOfficeName," & _
"telephoneNumber,mail,wWWHomePage,profilePath," & _
"scriptPath,homeDirectory,homeDrive,title,department," & _
"company,manager,homePhone,pager,mobile," & _
"facsimileTelephoneNumber,ipphone,info,memberOf," & _
"streetAddress,postOfficeBox,l,st,postalCode,c"
strScope = "subtree"
SET cn = CREATEOBJECT("ADODB.Connection")
SET cmd = CREATEOBJECT("ADODB.Command")
cn.Provider = "ADsDSOObject"
cn.Open "Active Directory Provider"
cmd.ActiveConnection = cn

cmd.Properties("Page Size") = 1000

cmd.commandtext = "<LDAP:
" & strRoot & ">;" & strFilter & ";" & _
strAttributes & ";" & strScope

SET rs = cmd.EXECUTE

SET objExcel = CREATEOBJECT("Excel.Application")
SET objWB = objExcel.Workbooks.Add
SET objSheet = objWB.Worksheets(1)

FOR i = 0 To rs.Fields.Count - 1
objSheet.Cells(1, i + 1).Value = rs.Fields(i).Name
objSheet.Cells(1, i + 1).Font.Bold = TRUE
NEXT

objSheet.Range("A2").CopyFromRecordset(rs)
objWB.SaveAs(strExportFile)


rs.close
cn.close
SET objSheet = NOTHING
SET objWB = NOTHING
objExcel.Quit()
SET objExcel = NOTHING

Wscript.echo "Script Finished..Please See " & strExportFile


Wäre super wenn mir einer den weg zeigt wie es möglich ist.

Danke im vorraus.

Content-Key: 154260

Url: https://administrator.de/contentid/154260

Printed on: April 16, 2024 at 23:04 o'clock

Member: micneu
micneu Nov 03, 2010 at 10:55:26 (UTC)
Goto Top
ich bin mir nicht sicher, aber kann vbs direkt excel dateien schreiben strExportFile = "C:\MyExport1.xls" ?
ich hatte es immer in csv gewandelt.

habe gerade kein ad bei mir deshalb kann ich es nicht testet.

gruß michael

ps: oh das hatte ich übersehen es geht ja doch in excel

SET objExcel = CREATEOBJECT("Excel.Application")
SET objWB = objExcel.Workbooks.Add
SET objSheet = objWB.Worksheets(1)

face-wink
Member: Yalcin
Yalcin Nov 03, 2010 at 10:58:22 (UTC)
Goto Top
Hi

Ja kann es ist eine feine sache.

gruß yalcin
Mitglied: 60730
60730 Nov 03, 2010 at 11:06:22 (UTC)
Goto Top
moin,

@Mic - schau mal in das von Ihm gepostete Script...

Obwohl ich keine Ahnung habe, was gefilterte Ausgabe mit xls zu tun hat.... face-sad

@to:

das kann dir keiner sagen, denn jeder baut sich seine AD selber und der "Pfad" innerhalb der AD ist daher üblicherweise niemals identisch.
Ausgenommen die voreingestellten Computer/Domaincontroller/user usw.

strfilter = "(&(objectClass=user))"
da siehst du "einen "Filter, den du für deine Zwecke so anpassen mußt wie deine AD aussieht.
Da gibt es keinen allgemeingültigen Code wie
SET objRootDSE = GETOBJECT("LDAP://RootDSE")
der immer den jeweiligen Root als Basis nimmt und daher "immer" und überall - wo eine AD vorhanden und man (das Script) auslesen darf - funktioniert.

Gruß
Member: Logan000
Logan000 Nov 03, 2010 at 11:52:15 (UTC)
Goto Top
Moin Moin

... habe da auch ein schönes script bei technet gefunden doch...
Du hättest nicht mit dem Suchen aufhören sollen.

Wenn Du diese beiden Skriptschnipsel mit deinen Codefetzen kombinierst, soltest Du eigentlich alles beisammen haben:
List All the Users in an OU
Search for User Accounts

Nebenbei: In der findes du Code Tags.

Gruß L.