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.
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.
Please also mark the comments that contributed to the solution of the article
Content-Key: 154260
Url: https://administrator.de/contentid/154260
Printed on: April 19, 2024 at 09:04 o'clock
4 Comments
Latest comment
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)
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)
moin,
@Mic - schau mal in das von Ihm gepostete Script...
Obwohl ich keine Ahnung habe, was gefilterte Ausgabe mit xls zu tun hat....
@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.
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
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ß
@Mic - schau mal in das von Ihm gepostete Script...
Obwohl ich keine Ahnung habe, was gefilterte Ausgabe mit xls zu tun hat....
@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 gibt es keinen allgemeingültigen Code wie
SET objRootDSE = GETOBJECT("LDAP://RootDSE")
Gruß
Moin Moin
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.
... 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.