Jump to content
Sign in to follow this  
g1n

VBS-Export-Skript

Recommended Posts

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

Share this post


Link to post

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.

Share this post


Link to post

@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

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...