g1n 10 Geschrieben 6. November 2008 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Sunny61 812 Geschrieben 6. November 2008 Melden Teilen 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/ Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 6. November 2008 Melden Teilen 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. Zitieren Link zu diesem Kommentar
g1n 10 Geschrieben 6. November 2008 Autor Melden Teilen 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.