Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Auflisten (zählen) aller Betriebsysteme im Acitve Directory

Frage Entwicklung Batch & Shell

Mitglied: Andi999

Andi999 (Level 1) - Jetzt verbinden

11.11.2011 um 10:55 Uhr, 2815 Aufrufe, 4 Kommentare

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.

01.
const FileName ="domaincomputers.csv" 
02.
set cmd = createobject("ADODB.Command") 
03.
set cn = createobject("ADODB.Connection") 
04.
set rs = createobject("ADODB.Recordset") 
05.
 
06.
cn.open "Provider=ADsDSOObject;" 
07.
cmd.activeconnection = cn 
08.
 
09.
set objRoot = getobject("LDAP://DC=eins,DC=firma,DC=de") 
10.
 
11.
cmd.commandtext = "<LDAP://" & objRoot.get ("distinguishedName") & ">;(objectCategory=Computer);" & _ 
12.
		  "name,operatingsystem,operatingsystemservicepack, operatingsystemversion;subtree" 
13.
'**** Bypass 1000 record limitation **** 
14.
cmd.properties("page size")=1000 
15.
 
16.
set rs = cmd.execute 
17.
set objFSO = createobject("Scripting.FileSystemObject") 
18.
set objCSV = objFSO.createtextfile(FileName) 
19.
 
20.
q = """" 
21.
 
22.
while rs.eof <> true and rs.bof <> true 
23.
	objcsv.writeline(q & rs("name") & q & "," &  q & rs("operatingsystem") & q & _ 
24.
		"," & q & rs("operatingsystemservicepack") & _ 
25.
		q & "," & q & rs("operatingsystemversion") & q) 
26.
	rs.movenext 
27.
wend 
28.
 
29.
objCSV.Close 
30.
cn.close 
31.
 
32.
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
Mitglied: lenny4me
11.11.2011 um 12:48 Uhr
Hallo,

ich denke das sollte mit Powershell viel einfacher gehen.

als Tipps hätte ich
Get-ADComputer und Get-WmiObject Win32_Operatingsystem

Das ganze in ne CSV gelenkt und ein wenig angepasst und fertig :D

Grüße
Bitte warten ..
Mitglied: bastla
11.11.2011 um 13:19 Uhr
Hallo Andi999 und willkommen in Forum!

Völlig ungetestet etwa so:
01.
const DomList = "D:\DomList.txt" 
02.
const FileName ="domaincomputers.csv" 
03.
 
04.
set objFSO = createobject("Scripting.FileSystemObject") 
05.
arrDoms = Split(Trim(objFSO.OpenTextFile(DomList).ReadAll)), vbCrLf) 
06.
 
07.
set cmd = createobject("ADODB.Command") 
08.
set cn = createobject("ADODB.Connection") 
09.
set rs = createobject("ADODB.Recordset") 
10.
 
11.
cn.open "Provider=ADsDSOObject;" 
12.
cmd.activeconnection = cn 
13.
 
14.
for each strDom in arrDoms 
15.
    if Dom <> "" Then 
16.
        set objRoot = getobject("LDAP://DC=" & strDom & ",DC=firma,DC=de") 
17.
 
18.
        cmd.commandtext = "<LDAP://" & objRoot.get ("distinguishedName") & ">;(objectCategory=Computer);" & _ 
19.
            "name,operatingsystem,operatingsystemservicepack, operatingsystemversion;subtree" 
20.
        '**** Bypass 1000 record limitation **** 
21.
        cmd.properties("page size")=1000 
22.
 
23.
        set rs = cmd.execute 
24.
        set objCSV = objFSO.createtextfile(strDom & FileName) 
25.
 
26.
        q = """" 
27.
 
28.
        while rs.eof <> true and rs.bof <> true 
29.
            objCSV.writeline(q & rs("name") & q & "," &  q & rs("operatingsystem") & q & _ 
30.
    	        "," & q & rs("operatingsystemservicepack") & _ 
31.
                q & "," & q & rs("operatingsystemversion") & q) 
32.
            rs.movenext 
33.
        wend 
34.
        objCSV.Close 
35.
    end if 
36.
next 
37.
cn.close 
38.
 
39.
wscript.echo "Finished"
Grüße
bastla
Bitte warten ..
Mitglied: Andi999
17.11.2011 um 10:26 Uhr
Vorerst Danke, das Script funktioniert fast.

Ich hab jetzt nur das Problem, dass ich immer nur die Ergebnisse von der Domäne bekomme wo ich das Script aufrufe.

z.B: ich starte das Script am DC der Domäne eins.firma.de, dann bekomme ich die Informationen von dieser Domäne, aber nicht von der zwei.firma.de, bzw. drei.firma.de, die Dateien sind einfach leer.

Muss ich hier auf eine Berechtigung noch achten ?

Danke
Bitte warten ..
Mitglied: bastla
17.11.2011 um 16:27 Uhr
Hallo Andi999!
Muss ich hier auf eine Berechtigung noch achten ?
Kann ich leider nicht beantworten ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Erkennung und -Abwehr
Dishwasher has directory traversal bug The Register (2)

Link von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Batch & Shell
gelöst Powershell Skript Ordnerinhalt auflisten und per E-Mail verschicken (2)

Frage von xbast1x zum Thema Batch & Shell ...

Windows Server
gelöst Active Directory Zertifikatdienste - Dienst kann nicht gestartet werden (1)

Frage von chb1982 zum Thema Windows Server ...

Windows Userverwaltung
Active Directory - OU Anordnung und Aufbau (9)

Frage von nightwishler zum Thema Windows Userverwaltung ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(4)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (41)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Off Topic
gelöst Fachzeitschriften als E-Book oder hardcoded? (11)

Frage von KowaKowalski zum Thema Off Topic ...

Windows 10
Windows Store Apps ohne Windows Store installieren (10)

Frage von keefien zum Thema Windows 10 ...