g1n 10 Geschrieben 6. November 2008 Melden Geschrieben 6. November 2008 hallo freunde der edv ;) ich sitze seit einigen tagen an einem vbs-skript das mir die domänen-client-rechner mit einer LDAP-abfrage (Name, Description) in eine csv-datei exportieren soll. ich habe das ganze bereits erfolgreich mit csvde probiert, das problem daran ist nur dass csvde auch sachen exportiert die nicht in dem exportfile auftauchen sollen. das exportfile sollte tatsächlich nur den namen des rechners und dessen beschreibung enthalten (aufgelistet), weil das file nicht für mich sondern für die verwaltung gedacht ist, die mit kürzeln wie OU= CN= leicht überfordert sind ;). ldap-attribute würden sich da prima für anbieten ;) das skript soll z.b. 1 mal am tag auf einem der DCs ausgeführt werden um das exportfile aktuell zu halten, hier mal das skript: 'Option Explicit On Error Resume Next Dim qQuery, objSysInfo, objComputer Dim Name, Description ' Read LDAP(Active Directory). '==================== Set objSysInfo = CreateObject("ADSystemInfo") objSysInfo.RefreshSchemaCache qQuery = "LDAP://DC=domäne,OU=Berlin,OU=Computers,CN=*" Set objComputer = GetObject(qQuery) Name = objComputer.Name Description = objComputer.Description ' This section creates file names and locations. '==================== Set objShell = CreateObject("WScript.Shell") FolderLocation = "C:\" TXTFileString = FolderLocation & "Berlin.csv" ' The next section builds the export file '==================== Dim objFSO Dim objFile,afile Dim aQuote aQuote = chr(34) Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.CreateTextFile(TXTFileString,True) objFile.Close Set objFile = objFSO.OpenTextFile(TXTFileString, 2) objfile.write Name & Description & vbCrLf objFile.Close das exportfile wird einwandfrei erstellt, nur leider leer ;) ich bin alles andere als ein vbs-skript profi....taste mich gerade an das thema heran. habe zwar schon einige skripte erstellt die z.b. signaturen auf basis von ldap-daten erstellen, aber an dem ding verzweifel ich so langsam ;) dankbar für hilfe g1n
Sunny61 833 Geschrieben 6. November 2008 Melden Geschrieben 6. November 2008 Schau dir Jose mal an: http://www.faq-o-matic.net/download/3/ und/oder auch Carlos: http://www.faq-o-matic.net/download/2/
Cybquest 36 Geschrieben 6. November 2008 Melden Geschrieben 6. November 2008 Dein Script hat ein paar kleine Fehler! - Deine LDAP-Abfrage funktioniert so nicht korrekt. - Wenn sie denn DAten liefern würde, würde sie ja nur einen einzigen Wert zurückgeben! So funktionierts bei mir: Set objRootDSE = GetObject("LDAP://RootDSE") strDomain = objRootDSE.Get("DefaultNamingContext") qQuery = "LDAP://CN=Computers," & strDomain & "" Set objComputer = GetObject(qQuery) For each Computer in objComputer Name = Computer.Name Description = Computer.Description objfile.write Name & Description & vbCrLf next ...den Teil mit dem File öffnen noch über das "For each..", unter das "next" noch das File schliessen, fertig.
g1n 10 Geschrieben 6. November 2008 Autor Melden Geschrieben 6. November 2008 @cybquest, ja beschäftige mich erst seit wenigen wochen mit VBS, deshalb sind fehler nahezu vorprogrammiert ;) hab das skript noch meinen bedürfnissen angepasst (exportpfad, OUs etc.) und nun lüppts prima. final schaut so aus: Set objRootDSE = GetObject("LDAP://RootDSE") strDomain = objRootDSE.Get("DefaultNamingContext") qQuery = "LDAP://OU=XYZ,OU=UVW," & strDomain & "" Set objComputer = GetObject(qQuery) Set objShell = CreateObject("WScript.Shell") FolderLocation = "C:\myexportr00t\" TXTFileString = FolderLocation & "Rechner123.xls" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.CreateTextFile(TXTFileString,True) objFile.Close Set objFile = objFSO.OpenTextFile(TXTFileString, 2) For each Computer in objComputer cn = Computer.cn Description = Computer.Description objfile.write cn & " " & " " & Description & vbCrLf next qQuery = "LDAP://OU=123,OU=456," & strDomain & "" Set objComputer = GetObject(qQuery) For each Computer in objComputer cn = Computer.cn Description = Computer.Description objfile.write cn & " " & " " & Description & vbCrLf next objFile.Close kam noch eine OU dazu, die eine andere rechnergruppe enthält...so is alles schön einer liste. danke! g1n
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden