Genutzten Filespace unterschiedlicher Verzeichnisse anzeigen lassen
Hallo zusammen,
ich stehe mal wieder vor einer Aufgabe, in der google mich nicht weiterbringt.
Wir betreiben hier einen Fileserver (MS W2k8R2) mit insg. 14 Laufwerken. In diesen Laufwerken sind die verschiedensten Abteilungen vertreten, sowie einzelne Laufwerke für die Usherhomes der Anwender.
Ich soll nun den genutzten Festplattenplatz der einzelnen Abteilungen berechnen inkl. der Homelaufwerke (die Homelaufwerke sind nicht Abteilungsmäßig getrennt)
Wäre super wenn mir jemand ein Tool empfehlen kann, in dem ich einstellen kann, welche Verzeichnisse auf genutzten Speicherplatz untersucht werden, um am besten das ganze in eine xls, txt oder anderes Format abspeichert. Am besten wär´s wenn ich mir nur einmal die Arbeit mache, sämtliche Homelaufwerke und die unterschiedlichen Verzeichnisse der einzelnen Abteilungen festzulegen und mir die konfig. wegspeichern kann, damit ich zum nächsten mal dieser wieder nutzen kann (Soll 1 mal monatlich durchgeführt werden.)
Jedoch soll dies auch für den anderen Abteilungen umgesetzt werden.
Hab zwar schin echt viele Tools getestet komme aber nicht zu einem für mich akzeptablen Ergebnis.
Vorab schonmal vielen Dank an Alle, bin für jeden Tipp dankbar.
Viele Grüße
DerPue
ich stehe mal wieder vor einer Aufgabe, in der google mich nicht weiterbringt.
Wir betreiben hier einen Fileserver (MS W2k8R2) mit insg. 14 Laufwerken. In diesen Laufwerken sind die verschiedensten Abteilungen vertreten, sowie einzelne Laufwerke für die Usherhomes der Anwender.
Ich soll nun den genutzten Festplattenplatz der einzelnen Abteilungen berechnen inkl. der Homelaufwerke (die Homelaufwerke sind nicht Abteilungsmäßig getrennt)
Wäre super wenn mir jemand ein Tool empfehlen kann, in dem ich einstellen kann, welche Verzeichnisse auf genutzten Speicherplatz untersucht werden, um am besten das ganze in eine xls, txt oder anderes Format abspeichert. Am besten wär´s wenn ich mir nur einmal die Arbeit mache, sämtliche Homelaufwerke und die unterschiedlichen Verzeichnisse der einzelnen Abteilungen festzulegen und mir die konfig. wegspeichern kann, damit ich zum nächsten mal dieser wieder nutzen kann (Soll 1 mal monatlich durchgeführt werden.)
Jedoch soll dies auch für den anderen Abteilungen umgesetzt werden.
Hab zwar schin echt viele Tools getestet komme aber nicht zu einem für mich akzeptablen Ergebnis.
Vorab schonmal vielen Dank an Alle, bin für jeden Tipp dankbar.
Viele Grüße
DerPue
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 211806
Url: https://administrator.de/contentid/211806
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
20 Kommentare
Neuester Kommentar
Gut, warum dann nicht TreeSize, getfoldersize ovgl und du nutzt entweder einen MainFrame inkludierte Überschlagstechnik oder ggf einen Taschenrechner/Excelsheet dafür?
Obiges gibt dir die Rückgabewerte in Bezug auf die Größe und du wählst entsprechend die zusammenzufassenden Bestandsgrößen aus und rechnest es zusammen. So schwer sollte das nicht sein.
Obiges gibt dir die Rückgabewerte in Bezug auf die Größe und du wählst entsprechend die zusammenzufassenden Bestandsgrößen aus und rechnest es zusammen. So schwer sollte das nicht sein.
Für ein einzelnes Verzeichnis auf C:
Inhalt "verzeichnisse.csv":
Verzeichnisname - 478,23 MB
Vergleich Anzeige auf Eigenschaften des Verzeichnisses:
478 MB
Zeile 1 legt quasi die "verzeichnisse.csv" einmal neu an bzw. entleert sie quasi.
Zeile 2-3 siehe Code einmal für alle Verzeichnisse.
Das Ganze in eine .ps1 datei und dann laufen lassen?
"Beispielverzeichnis" siehe Zeile 3 jeweils nach deinem Gutdünken benennen (für jedes weitere...)
Die Datei dann als "CSV" mit '-' als trenner... nur sone Idee
Und für die Zusammenrechnung dann entweder excel nutzen oder mit powershell rechnen ...
$colItem.sum ist die summierte Byteanzahl aller Objekte in einem Verzeichnis.
Wenn du die Größere mehrerer aber nicht aller Verzeichnisse zusammen rechnen willst, die Gesamtanzahl deiner gewünschten
Verzeichnisse aber überschaubar bleibt, dann einfach für jedes zu untersuchende (Unter)verzeichnis eine Variable beschreiben:
z.B.
... Zeile 2 und 3 für das erste Verzeichnis...
$variable1=$colItem.sum
(danach steht die Größe des vorherig untersuchten Verzeichnisses in $variable1)
...Zeile 2 und 3 für das zweite Verzeichnis
$variable2=$colitem.sum
$variable2 enthält Größe von Verzeichnis 2.
...
...
Später:
$groesseAbteilung1 = $($var1 + $var2)
Diese dann formatiert in MB ausgeben:
echo "Beispielverzeichnis - $("{0:N2}" -f ($groesseAbteilung1 / 1MB) + " MB")" >> verzeichnisse.csv
echo "" > verzeichnisse.csv
$colItems = (Get-ChildItem C:\Beispielverzeichnis -recurse | Measure-Object -property length -sum)
echo "Beispielverzeichnis - $("{0:N2}" -f ($colItems.sum / 1MB) + " MB")" >> verzeichnisse.csv
Verzeichnisname - 478,23 MB
Vergleich Anzeige auf Eigenschaften des Verzeichnisses:
478 MB
Zeile 1 legt quasi die "verzeichnisse.csv" einmal neu an bzw. entleert sie quasi.
Zeile 2-3 siehe Code einmal für alle Verzeichnisse.
Das Ganze in eine .ps1 datei und dann laufen lassen?
"Beispielverzeichnis" siehe Zeile 3 jeweils nach deinem Gutdünken benennen (für jedes weitere...)
Die Datei dann als "CSV" mit '-' als trenner... nur sone Idee
Und für die Zusammenrechnung dann entweder excel nutzen oder mit powershell rechnen ...
$colItem.sum ist die summierte Byteanzahl aller Objekte in einem Verzeichnis.
Wenn du die Größere mehrerer aber nicht aller Verzeichnisse zusammen rechnen willst, die Gesamtanzahl deiner gewünschten
Verzeichnisse aber überschaubar bleibt, dann einfach für jedes zu untersuchende (Unter)verzeichnis eine Variable beschreiben:
z.B.
... Zeile 2 und 3 für das erste Verzeichnis...
$variable1=$colItem.sum
(danach steht die Größe des vorherig untersuchten Verzeichnisses in $variable1)
...Zeile 2 und 3 für das zweite Verzeichnis
$variable2=$colitem.sum
$variable2 enthält Größe von Verzeichnis 2.
...
...
Später:
$groesseAbteilung1 = $($var1 + $var2)
Diese dann formatiert in MB ausgeben:
echo "Beispielverzeichnis - $("{0:N2}" -f ($groesseAbteilung1 / 1MB) + " MB")" >> verzeichnisse.csv
Habe meinen letzten Eintrag nochmal aktualisiert. Da steht nun auch, wie Du berechnen und entsprechend ausgeben kannst.
Falls du in andere Größeneinheiten, wie GB oder TB umrechnen willst, einfach im Quelltext MB durch GB / TB ersetzen.
Die Umrechnung erfolgt in tatsächlicher 1024er Division. so sind 8 Byte 0.000007629395 MByte.
Falls Du dabei mehr Nachkommastellen möchtest, in "{0:2N}" die 2 durch die gewünschte Stellenanzahl ersetzen.
Bedenke, wenn Du jedes mal $colItem benutzt, überschreibst du die Variable $colItem für jedes Verzeichnis.
Da Du bei den Verzeichnissen nur die Größe willst, müsste es reichen, wenn du siehe oben (mein letzter Beitrag) nur $colItem.sum
in eine entsprechende Variable zwischenspeicherst. Diese dann genauso ausgeben wie oben, nur eben statt "$colItems.sum" dann eben
"$variable1" (ohne die "") oder welche eben dran is und in die csv mit rein soll.
Was genau meinst Du mit Spalte 1 und Spalte 2? (Reihenfolge?)
Falls du in andere Größeneinheiten, wie GB oder TB umrechnen willst, einfach im Quelltext MB durch GB / TB ersetzen.
Die Umrechnung erfolgt in tatsächlicher 1024er Division. so sind 8 Byte 0.000007629395 MByte.
Falls Du dabei mehr Nachkommastellen möchtest, in "{0:2N}" die 2 durch die gewünschte Stellenanzahl ersetzen.
Bedenke, wenn Du jedes mal $colItem benutzt, überschreibst du die Variable $colItem für jedes Verzeichnis.
Da Du bei den Verzeichnissen nur die Größe willst, müsste es reichen, wenn du siehe oben (mein letzter Beitrag) nur $colItem.sum
in eine entsprechende Variable zwischenspeicherst. Diese dann genauso ausgeben wie oben, nur eben statt "$colItems.sum" dann eben
"$variable1" (ohne die "") oder welche eben dran is und in die csv mit rein soll.
Was genau meinst Du mit Spalte 1 und Spalte 2? (Reihenfolge?)
also öffne mal mit openoffice, der erkennt in csv ein excel format und normal auch den Trenner.
Falls Du Verzeichnisnamen mit "-" hast, ist das natürlich kein guter Trenner.
In dem Fall einfach beim Echo vor und nach jeden Ausdruck ein \" setzen (wenn ich nicht irre.)
Dann wird "Verzeichnisname" und "478,23 MB" je in Anführungsstrichen stehen, aber das - nicht.
Alternativ ein Zeichen als Trenner nehmen, was nicht in Verzeichnissen vorkommen kann.
Wenns richtig angezeigt wird, in openoffice, dann einfach nach xls speichern...
Falls Du Verzeichnisnamen mit "-" hast, ist das natürlich kein guter Trenner.
In dem Fall einfach beim Echo vor und nach jeden Ausdruck ein \" setzen (wenn ich nicht irre.)
Dann wird "Verzeichnisname" und "478,23 MB" je in Anführungsstrichen stehen, aber das - nicht.
Alternativ ein Zeichen als Trenner nehmen, was nicht in Verzeichnissen vorkommen kann.
Wenns richtig angezeigt wird, in openoffice, dann einfach nach xls speichern...
Also, lass alles wies ist.
Nur kleine Änderung an der Zeile 3 für alle Verzeichnisse:
echo "temp;$("{0:N2}" -f ($colItems.sum / 1GB) + " GB")" >> verzeichnisse.csv
Es ändert sich also nur folgendes:
" - " wird in der Ausgabe zu ";"
Das ist die Formatierung, die Excel selbst nimmt, wenn man in csv speichert.
Das sollte es auch richtig öffnen.
P.S.: Ist das nicht herrlich, was man so alles selber erschaffen kann?
Nur kleine Änderung an der Zeile 3 für alle Verzeichnisse:
echo "temp;$("{0:N2}" -f ($colItems.sum / 1GB) + " GB")" >> verzeichnisse.csv
Es ändert sich also nur folgendes:
" - " wird in der Ausgabe zu ";"
Das ist die Formatierung, die Excel selbst nimmt, wenn man in csv speichert.
Das sollte es auch richtig öffnen.
P.S.: Ist das nicht herrlich, was man so alles selber erschaffen kann?
SOOOOOOOO
ich habs (Beispiel von mir...)
Nach Ausführung sieht die verzeichnisse.csv so aus:
Anmerkung:
(Überflüssig zu erwähnen, dass das Zusammenrechnen in diesem Beispiel keinen Sinn macht, da Desktop ein Unterverzeichnis von Mondragor ist.)
Die letzte Nachkommastelle bei der Powershell-Berechnung scheint falsch berechnet. Das liegt daran, dass wir hier die Bytes addieren.
Die Summe wird erst am Schluss auf die dritte Stelle nach dem Komma gerundet. Die beiden Zwischenausgaben sind bereits beide auf
die dritte Stelle gerundet, was insgesamt eine addierte Rundung ist, die im Ergebnis unter Umständen falsch wird.
Je mehr Summanden, desto größer die mögliche Abweichung, allerdings sollte / könnte es sich statistisch annährend aufheben...
!!!Das würde allerdings auch Excel so rechnen!!! (Die addierten Rundungen...)
Daher ist die Rundung bei der Berechnung der Größen im Powershell genauer. (Bytegenaue Addition und erst dann runden.)
Weiter mit der CSV:
Da die CSV aufm desktop liegt: rechte Maustaste darauf → bearbeiten → STRG + A → STRG + C (Inhalt nun im Zwischenspeicher)
Jetzt Excel öffnen:
oben links auf "Einfügen (schwarzer Pfeil darunter)" → Textkonvertierungs-Assistenten verwenden
Dann öffnet sich ein Fensterchen. Dies liest aus dem Zwischenspeicher und zeigt unten das Zwischenergebnis.
Schritt 1 von 3 - alles so lassen: getrennt, Windows ANSI → "Weiter"
Schritt 2 von 3 - Haken bei Leerzeichen raus, Haken bei Semikolon rein, Textqualifizierer: {Kein} → "Weiter"
Schritt 3 von 3 - Standard lassen → Weiter bzw. Fertig...
Nun noch schön machen mit Rahmen und so...
Ausdrucken, Chef zeigen, Lob empfangen (falls Chef gut gelaunt)
Fertig.
Jetzt muss ich dazu sagen, dass ich nur die "MS Excel Starter" zuhause habe.
Es gibt irgendwie bei gewissen Excel Versionen auch die Import aus Textdatei - Funktion. Verfahren ähnlich, nur eben die Textdatei angeben...
Gib Bescheid, wenns nicht klappt oder was anders ist, als es sein sollte.
ich habs (Beispiel von mir...)
#beginn
cd C:\Users\Mondragor\Desktop\
#Kopfzeile mit Spaltenbezeichnern in zeile 1:
echo "Verzeichnisname;Größe in GB" > .\verzeichnisse.csv
#Jetzt das erste Verzeichnis C:\Users\Mondragor:
$colItems = (Get-ChildItem C:\Users\Mondragor -recurse | Measure-Object -property length -sum)
#in Variable $MondragorHome das .sum-Attribut abspeichern
$mondragorHome = $colItems.sum
#Ausgabe in Zeile 2:
echo "Mondragor;$("{0:N3}" -f ($colItems.sum / 1GB))" >> .\verzeichnisse.csv
#
#Nun das zweite Verzeichnis: C:\Users\Mondragor\Desktop
$colItems = (Get-ChildItem C:\Users\Mondragor\Desktop -recurse | Measure-Object -property length -sum)
#in Variable $desktop das .sum-Attribut abspeichern
$desktop=$colItems.sum
#Ausgabe in Zeile3:
echo "Mondragor-Desktop;$("{0:N3}" -f ($colItems.sum / 1GB))" >> .\verzeichnisse.csv
#Zusammenrechnen und in Zeile 4 der csv schreiben:
echo "Gesamt;$("{0:N3}" -f ($($mondragorHome + $desktop)/ 1GB))" >> .\verzeichnisse.csv
#ende
Verzeichnisname;Größe in GB
Mondragor;8,977
Mondragor-Desktop;6,476
Gesamt;15,452
(Überflüssig zu erwähnen, dass das Zusammenrechnen in diesem Beispiel keinen Sinn macht, da Desktop ein Unterverzeichnis von Mondragor ist.)
Die letzte Nachkommastelle bei der Powershell-Berechnung scheint falsch berechnet. Das liegt daran, dass wir hier die Bytes addieren.
Die Summe wird erst am Schluss auf die dritte Stelle nach dem Komma gerundet. Die beiden Zwischenausgaben sind bereits beide auf
die dritte Stelle gerundet, was insgesamt eine addierte Rundung ist, die im Ergebnis unter Umständen falsch wird.
Je mehr Summanden, desto größer die mögliche Abweichung, allerdings sollte / könnte es sich statistisch annährend aufheben...
!!!Das würde allerdings auch Excel so rechnen!!! (Die addierten Rundungen...)
Daher ist die Rundung bei der Berechnung der Größen im Powershell genauer. (Bytegenaue Addition und erst dann runden.)
Weiter mit der CSV:
Da die CSV aufm desktop liegt: rechte Maustaste darauf → bearbeiten → STRG + A → STRG + C (Inhalt nun im Zwischenspeicher)
Jetzt Excel öffnen:
oben links auf "Einfügen (schwarzer Pfeil darunter)" → Textkonvertierungs-Assistenten verwenden
Dann öffnet sich ein Fensterchen. Dies liest aus dem Zwischenspeicher und zeigt unten das Zwischenergebnis.
Schritt 1 von 3 - alles so lassen: getrennt, Windows ANSI → "Weiter"
Schritt 2 von 3 - Haken bei Leerzeichen raus, Haken bei Semikolon rein, Textqualifizierer: {Kein} → "Weiter"
Schritt 3 von 3 - Standard lassen → Weiter bzw. Fertig...
Nun noch schön machen mit Rahmen und so...
Ausdrucken, Chef zeigen, Lob empfangen (falls Chef gut gelaunt)
Fertig.
Jetzt muss ich dazu sagen, dass ich nur die "MS Excel Starter" zuhause habe.
Es gibt irgendwie bei gewissen Excel Versionen auch die Import aus Textdatei - Funktion. Verfahren ähnlich, nur eben die Textdatei angeben...
Gib Bescheid, wenns nicht klappt oder was anders ist, als es sein sollte.
Nun, ich habe keinen Zweifel, dass Deine Lösung auch funktioniert.
Als Trenner solltest Du dann aber " - " wählen, mit Leerzeichen.
Denn sonst hast Du die Zahlenwerte als Zeichenketten mit nem " " Leerzeichen vorn dran in den Spalten stehen -
und die lassen sich nicht unbedingt ohne Weiteres addieren.
Letztlich ist es Dir überlassen, welche Formatierung Du haben möchtest. Einen "-" als Trenner find ich nicht soo gut,
weil der in Windows-Verzeichnisnamen schon eher vorkommen kann, als ein ";"...
Vom Prinzip ist es ja beides sehr ähnlich.
Das Zusammenrechnen in der Powershell habe ich nur als Beispiel angeführt, ist eben genauer.
Wenn immer die selben zusammengerechnet werden sollen, würd ich persönlich das mit scripten.
Ansonsten eben Excel.
Durch erneutes Ausführen erhältst Du die aktualisierung der "Füllstände".
Theoretisch müsste es auch möglich sein, die Formel für die Excel-Berechnung in die Powershell zu schreiben,
dabei aber aufpassen, wenn weiter oben zusätzliche Zeilen in die CSV kommen, stimmen die Zeilennummern
nicht mehr.
Ansonsten gern geschehn,
Grüße, Mondragor
Als Trenner solltest Du dann aber " - " wählen, mit Leerzeichen.
Denn sonst hast Du die Zahlenwerte als Zeichenketten mit nem " " Leerzeichen vorn dran in den Spalten stehen -
und die lassen sich nicht unbedingt ohne Weiteres addieren.
Letztlich ist es Dir überlassen, welche Formatierung Du haben möchtest. Einen "-" als Trenner find ich nicht soo gut,
weil der in Windows-Verzeichnisnamen schon eher vorkommen kann, als ein ";"...
Vom Prinzip ist es ja beides sehr ähnlich.
Das Zusammenrechnen in der Powershell habe ich nur als Beispiel angeführt, ist eben genauer.
Wenn immer die selben zusammengerechnet werden sollen, würd ich persönlich das mit scripten.
Ansonsten eben Excel.
Durch erneutes Ausführen erhältst Du die aktualisierung der "Füllstände".
Theoretisch müsste es auch möglich sein, die Formel für die Excel-Berechnung in die Powershell zu schreiben,
dabei aber aufpassen, wenn weiter oben zusätzliche Zeilen in die CSV kommen, stimmen die Zeilennummern
nicht mehr.
Ansonsten gern geschehn,
Grüße, Mondragor