Auflisten (zählen) aller Betriebsysteme im Acitve Directory
Hallo
Ich möchte aus mehreren Domänen eine Auflistung von allen Computern und deren AD Attributen Operatingsystem,Operatingsystemservicepack und Operatingsystemversion haben und diese dann sortiert in eine Datei schreiben.
d.h ich möchte ein Textfile wo drinnen steht:
Domäne: eins.firma.de
52 Windows XP Professional 5.1 (2600) Service Pack 3
10 Windows 7 Enterprise 6.1 (7601) Service Pack 1
Domäne: zwei.firma.de
120 Windows XP Professional 5.1 (2600) Service Pack 3
1 Windows 7 Enterprise 6.1 (7601) Service Pack 1
Also ich hab es mal geschafft von einer Domäne ein Textfile zu erstellen, dass alle Computer mit den Operatingsystem anzeigt.
Wie schafe ich es jetzt aus einem Textfile mit dem Inhalt (Domänen Namen)
eins
zwei
drei
so in den Code einzubringen, das dieser für jede Domäne durchläuft und auch den Ausgabe Textfile Namen auf domaincomputers_eins.csv, domaincomputers_zwei.csv,... ändert.
Danke für einen Tip
Gruß
Andre
Ich möchte aus mehreren Domänen eine Auflistung von allen Computern und deren AD Attributen Operatingsystem,Operatingsystemservicepack und Operatingsystemversion haben und diese dann sortiert in eine Datei schreiben.
d.h ich möchte ein Textfile wo drinnen steht:
Domäne: eins.firma.de
52 Windows XP Professional 5.1 (2600) Service Pack 3
10 Windows 7 Enterprise 6.1 (7601) Service Pack 1
Domäne: zwei.firma.de
120 Windows XP Professional 5.1 (2600) Service Pack 3
1 Windows 7 Enterprise 6.1 (7601) Service Pack 1
Also ich hab es mal geschafft von einer Domäne ein Textfile zu erstellen, dass alle Computer mit den Operatingsystem anzeigt.
const FileName ="domaincomputers.csv"
set cmd = createobject("ADODB.Command")
set cn = createobject("ADODB.Connection")
set rs = createobject("ADODB.Recordset")
cn.open "Provider=ADsDSOObject;"
cmd.activeconnection = cn
set objRoot = getobject("LDAP://DC=eins,DC=firma,DC=de")
cmd.commandtext = "<LDAP://" & objRoot.get ("distinguishedName") & ">;(objectCategory=Computer);" & _
"name,operatingsystem,operatingsystemservicepack, operatingsystemversion;subtree"
'**** Bypass 1000 record limitation ****
cmd.properties("page size")=1000
set rs = cmd.execute
set objFSO = createobject("Scripting.FileSystemObject")
set objCSV = objFSO.createtextfile(FileName)
q = """"
while rs.eof <> true and rs.bof <> true
objcsv.writeline(q & rs("name") & q & "," & q & rs("operatingsystem") & q & _
"," & q & rs("operatingsystemservicepack") & _
q & "," & q & rs("operatingsystemversion") & q)
rs.movenext
wend
objCSV.Close
cn.close
wscript.echo "Finished"
Wie schafe ich es jetzt aus einem Textfile mit dem Inhalt (Domänen Namen)
eins
zwei
drei
so in den Code einzubringen, das dieser für jede Domäne durchläuft und auch den Ausgabe Textfile Namen auf domaincomputers_eins.csv, domaincomputers_zwei.csv,... ändert.
Danke für einen Tip
Gruß
Andre
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 176114
Url: https://administrator.de/contentid/176114
Ausgedruckt am: 25.11.2024 um 15:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo Andi999 und willkommen in Forum!
Völlig ungetestet etwa so:
Grüße
bastla
Völlig ungetestet etwa so:
const DomList = "D:\DomList.txt"
const FileName ="domaincomputers.csv"
set objFSO = createobject("Scripting.FileSystemObject")
arrDoms = Split(Trim(objFSO.OpenTextFile(DomList).ReadAll)), vbCrLf)
set cmd = createobject("ADODB.Command")
set cn = createobject("ADODB.Connection")
set rs = createobject("ADODB.Recordset")
cn.open "Provider=ADsDSOObject;"
cmd.activeconnection = cn
for each strDom in arrDoms
if Dom <> "" Then
set objRoot = getobject("LDAP://DC=" & strDom & ",DC=firma,DC=de")
cmd.commandtext = "<LDAP://" & objRoot.get ("distinguishedName") & ">;(objectCategory=Computer);" & _
"name,operatingsystem,operatingsystemservicepack, operatingsystemversion;subtree"
'**** Bypass 1000 record limitation ****
cmd.properties("page size")=1000
set rs = cmd.execute
set objCSV = objFSO.createtextfile(strDom & FileName)
q = """"
while rs.eof <> true and rs.bof <> true
objCSV.writeline(q & rs("name") & q & "," & q & rs("operatingsystem") & q & _
"," & q & rs("operatingsystemservicepack") & _
q & "," & q & rs("operatingsystemversion") & q)
rs.movenext
wend
objCSV.Close
end if
next
cn.close
wscript.echo "Finished"
bastla