yalcin

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.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 154260

Url: https://administrator.de/forum/vb-script-fuer-ad-user-exportieren-154260.html

Ausgedruckt am: 18.06.2025 um 20:06 Uhr

micneu
micneu 03.11.2010 um 11:55:26 Uhr
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
Yalcin
Yalcin 03.11.2010 um 11:58:22 Uhr
Goto Top
Hi

Ja kann es ist eine feine sache.

gruß yalcin
60730
60730 03.11.2010 um 12:06:22 Uhr
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ß
Logan000
Logan000 03.11.2010 um 12:52:15 Uhr
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.