harrysteff
Goto Top

Freier Festplattenplatz verschiedener Clients oder Server in eine Excel-Datei ?

Hallo zusammen, dies ist mein erster Eintrag in diesem Super-Forum, und ich hoffe mir kann geholfen werden.
Und zwar möchte ich unsere tägliche Serverüberprüfung automatisieren.
Wir haben ca. 25 Server je 2 Partitionen (C: und Dface-smile Teilweise sind auch Server dabei die keine 2. Partition haben, bzw. kein Laufwerk C: sondern nur ein Laufwerk X:.
Nun möchte ich gerne von jedem Server und entsprechend jeder Partition den noch verfügbaren Plattenplatz in eine Excel-Datei schreiben.
Diese Excel-Datei soll auch zur Archivierung des Plattenplatzverlaufes dienen. D.H. ich möchte gerne für jeden Tag des Jahres die entsprechenden Daten aufbewaren.
Ich habe schon herumexperimentiert mit dem Tool "Psinfo.exe":

Datei lw.cmd:

if exist test.txt del test.txt
psinfo -d WINNT30 >> test.txt
psinfo -d WINNT31 >> test.txt
psinfo -d WINNT32 >> test.txt
psinfo -d WINNT33 >> test.txt
psinfo -d WINNT34 >> test.txt
psinfo -d WINNT35 >> test.txt
psinfo -d WINNT09 >> test.txt
psinfo -d WINNT37 >> test.txt
psinfo -d WINNT11 >> test.txt
psinfo -d WINNT40 >> test.txt
psinfo -d WINNT13 >> test.txt
psinfo -d WINNT17 >> test.txt
psinfo -d WINNT16 >> test.txt
psinfo -d WINNT26 >> test.txt
psinfo -d WINNT27 >> test.txt
psinfo -d WINNT28 >> test.txt
psinfo -d WINNT18 >> test.txt
psinfo -d WINNT19 >> test.txt
psinfo -d WINNT20 >> test.txt
psinfo -d WINNT21 >> test.txt
psinfo -d WINNT22 >> test.txt
psinfo -d KIRCHNER-RO-SRV >> test.txt
psinfo -d WINNT42 >> test.txt
psinfo -d WINNT43 >> test.txt

Die hier erzeugte Test.txt überprüfe ich mit folgender weiteren Batch-Datei:

finden.cmd

if exist Laufwerke.txt del Laufwerke.txt
findstr "C:.Fixed D:.Fixed X:.Fixed" test.txt >>Laufwerke.txt

Die Ausgabe ist nun so:
C: Fixed NTFS 19.99 GB 11.87 GB 59.4%
D: Fixed NTFS Daten 39.99 GB 9.83 GB 24.6%
C: Fixed NTFS 19.99 GB 10.20 GB 51.1%
D: Fixed NTFS Daten 499.99 GB 34.18 GB 6.8%
C: Fixed NTFS 19.99 GB 12.95 GB 64.8%
D: Fixed NTFS Volume 30.00 GB 5.77 GB 19.2%
C: Fixed NTFS 19.99 GB 9.47 GB 47.4%
D: Fixed NTFS Volume 19.99 GB 7.60 GB 38.0%
C: Fixed NTFS 19.99 GB 10.50 GB 52.6%
D: Fixed NTFS Volume 10.00 GB 8.15 GB 81.5%
C: Fixed NTFS 19.99 GB 11.99 GB 60.0%
D: Fixed NTFS Volume 80.00 GB 11.92 GB 14.9%
C: Fixed NTFS 19.99 GB 10.43 GB 52.2%
D: Fixed NTFS Volume 10.00 GB 5.93 GB 59.3%
C: Fixed NTFS 19.99 GB 10.62 GB 53.1%
D: Fixed NTFS Volume 19.99 GB 16.42 GB 82.1%
C: Fixed NTFS 19.53 GB 12.53 GB 64.1%
D: Fixed NTFS DATEN 14.31 GB 13.70 GB 95.7%
C: Fixed NTFS 19.99 GB 5.20 GB 26.0%
D: Fixed NTFS Daten 30.00 GB 14.09 GB 47.0%
C: Fixed NTFS 19.99 GB 3.63 GB 18.2%
D: Fixed NTFS Daten 19.99 GB 11.33 GB 56.7%
C: Fixed NTFS 11.72 GB 6.72 GB 57.3%
D: Fixed NTFS Daten 56.08 GB 53.63 GB 95.6%
C: Fixed NTFS 11.72 GB 5.38 GB 45.9%
D: Fixed NTFS Daten 56.08 GB 30.76 GB 54.8%
C: Fixed NTFS 15.63 GB 7.42 GB 47.5%
D: Fixed NTFS Daten 121.10 GB 68.97 GB 57.0%
C: Fixed NTFS 15.63 GB 9.51 GB 60.9%
D: Fixed NTFS Volume 121.10 GB 78.84 GB 65.1%
C: Fixed NTFS 19.53 GB 12.06 GB 61.8%
D: Fixed NTFS Daten 117.19 GB 70.20 GB 59.9%
X: Fixed NTFS Citrix1 33.90 GB 21.05 GB 62.1%
X: Fixed NTFS Citrix2 33.90 GB 21.81 GB 64.3%
C: Fixed NTFS Arriba bauen 33.89 GB 25.96 GB 76.6%
D: Fixed NTFS Volume 136.72 GB 103.19 GB 75.5%
C: Fixed NTFS 33.89 GB 28.99 GB 85.5%
D: Fixed NTFS Volume 67.80 GB 38.54 GB 56.8%
C: Fixed NTFS 33.89 GB 25.04 GB 73.9%
D: Fixed NTFS Volume 136.72 GB 24.30 GB 17.8%
C: Fixed NTFS 19.53 GB 9.53 GB 48.8%
D: Fixed NTFS New Volume 116.13 GB 79.84 GB 68.8%
C: Fixed NTFS 29.99 GB 20.87 GB 69.6%
C: Fixed NTFS 29.99 GB 21.65 GB 72.2%

Nun möchte ich gerne noch die entsprechenden Servernamen zu den jeweiligen Laufwerken haben, und dann das ganze in Excel übernehmen.

So Viel Text...
Ich hoffe jemand kann mich hierbei unterstützen...

DANKE

Stefan

[Edit Biber] Abgehakt & von "Windows" nach "Entwicklung und Skripte" verschoben. [/Edit]

Content-Key: 64572

Url: https://administrator.de/contentid/64572

Printed on: April 27, 2024 at 02:04 o'clock

Member: bastla
bastla Jul 25, 2007 at 08:22:23 (UTC)
Goto Top
Hallo HarrySteff!

Vorweg vielleicht ein Hinweis auf die Möglichkeit, psinfo auch mit dem Parameter "@file" zu starten, wodurch Du die Liste aller Rechner einfach in eine Textdatei schreiben kannst - konkret könnte der Befehl dann etwa
psinfo -d @D:\Servers.txt>>D:\DrivesInfo.txt
lauten.

Eine ähnliche Vorgangsweise, nur mit einer anderen Art des Auslesens der für Dich relevanten Daten, könnte so aussehen:

@echo off & setlocal
set "Liste=D:\Servers.txt"  
set "Info=D:\DrivesInfo.csv"  
if exist "%Info%" del "%Info%"  
for /f "usebackq delims=" %%i in ("%Liste%") do cscript //nologo C:\Scripts\GetDrivesInfo.vbs "%%i">>"%Info%" & echo %%i  
Dazu benötigst Du (neben dieser Batchdatei) die schon angesprochene Rechnerliste (ein Eintrag je Zeile, keine "\\") und das folgende, als "C:\Scripts\GetDrivesInfo.vbs" gespeicherte, VB-Script:
strDelim = ";"  
strDrives = "C:D:X:"  
On Error Resume Next
strComputer = WScript.Arguments(0)
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")   
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk",,48)   
For Each objItem in colItems
	If objItem.DriveType = 3 And Instr(strDrives, objItem.Name) Then
		lngTotal = objItem.Size
		lngUsed = objItem.Size - objItem.FreeSpace
		strTotal = FormatNumber(lngTotal / 1000000000, 2)
		strUsed = FormatNumber(lngUsed / 1000000000, 2)
		strPct = FormatNumber(lngUsed * 100 / lngTotal, 2) & "%"  
		WScript.Echo Date & strDelim & _
			strComputer & strDelim & _
			objItem.Name & strDelim & _
			objItem.FileSystem & strDelim & _
			strTotal & strDelim & _
			strUsed & strDelim & _
			strPct
	End If
Next

In den ersten beiden Zeilen wird festgelegt, dass die Felder durch ";" getrennt werden (für Tabs wäre etwa die erste Zeile strDelim = Chr(9)) und nur die von Dir vorgegebenen Laufwerksbuchstaben berücksichtigt werden sollen.

In den Zeilen ab "WScript.Echo" findest Du die einzelnen Felder (ich habe noch das Datum am Anfang hinzugefügt) der Ausgabe - falls Du hier etwas änderst, bitte beachten, dass (bis auf die letzte Zeile) immer " & strDelim & _" hinter dem auszugebenden Feld stehen muss.

Die entstehende Datei kannst Du, da mit ".csv" benannt, per Doppelklick mit Excel öffnen.

Wenn die Abfrage bisher mit PsInfo geklappt hat, sollte auch das Script auf die einzelnen Rechner zugreifen können (Admin-Rechte vorausgesetzt) - falls dies bei einzelnen Rechnern (zB weil offline) nicht möglich ist, wird ohne Fehlermeldung fortgesetzt.

Grüße
bastla
Member: HarrySteff
HarrySteff Jul 25, 2007 at 09:07:28 (UTC)
Goto Top
Super genial!!!
Vielen Dank

Genau so wollte ich es haben!!!
Topp!
Member: horschd
horschd Aug 07, 2008 at 13:46:48 (UTC)
Goto Top
mit psinfo \\host -d -u "user" -p "pw" bekomm ich die Daten die ich brauch.
Wenn ich allerdings das Script verwende geht das nicht. Auch wenn ich in Servers.txt -u und -p eingeb geht das leider nicht.
Member: bastla
bastla Aug 07, 2008 at 13:59:43 (UTC)
Goto Top
Hallo horschd und willkommen im Forum!

Falls Du tatsächlich Passwörter im Klartext in einer Datei hinterlegen willst, könnte das so gehen:

Zunächst in der "Servers.txt" in den einzelnen Zeilen, jeweils durch ";" getrennt, Servername, User und Passwort eintragen und dann mit folgendem Batch verwenden:
@echo off & setlocal
set "Liste=D:\Servers.txt"  
set "Info=D:\DrivesInfo.csv"  
if exist "%Info%" del "%Info%"  
for /f "usebackq tokens=1-3 delims=;" %%i in ("%Liste%") do psinfo \\%%i -d -u %%j - p %%k|findstr "information Fixed">>"%Info%" & echo %%i  
Durch das Filtern mit
|findstr "information Fixed"  
wird das Ergebnis auf die Angabe des Servernamens (Zeile "System information for \\Servername:") und der Laufwerksinfos für Festplatten beschränkt - hier nach Wunsch anpassen oder den Filter ganz weglassen, um die vollständige Info zu speichern.

Grüße
bastla
Member: Technikber
Technikber Aug 08, 2008 at 10:25:35 (UTC)
Goto Top
Hallo

Super Tool grad eine Frage würde das ganze auch über das Internet gehen
Hab mehrere Betriebe die ich betreue und da wäre es nicht schlecht wenn ich das von zu Hause machen könnte od wäre es möglich automatisch eine Mail zu schicken

danke
Member: bastla
bastla Aug 08, 2008 at 10:37:05 (UTC)
Goto Top
Hallo Technikber!

Zum Mail-Versenden unter Batch: blat und dazu diverse Beiträge hier im Forum ...

Grüße
bastla
Member: Technikber
Technikber Aug 08, 2008 at 13:13:13 (UTC)
Goto Top
Danke für die prompte antwort

Schönes Wochenende