Ordnerstruktur auslesen und optisch schön ausdrucken
Hallo,
Kennt jemand ein Tool mit dem man die ganze Ordner-Struktur einer Storage für eine Migration auf eine neue Server-Umgebung auslesen und für einen User übersichtlich ausdrucken kann?
Also so wie es der Windows Explorer darstellt?
Kunde hat derzeit nur eine NAS und dort eine gewachsene Ordner-Struktur. Durch die Installation eines neuen Server bietet sich an hier eine neuen Ordnerstruktur anzulegen. Mit dem Tool brauchen wir nur eine Übersicht der jetzigen Struktur um planen zu können, wie die Daten in die neue Struktur kopiert werden sollen.
Gruß, Herry
Kennt jemand ein Tool mit dem man die ganze Ordner-Struktur einer Storage für eine Migration auf eine neue Server-Umgebung auslesen und für einen User übersichtlich ausdrucken kann?
Also so wie es der Windows Explorer darstellt?
Kunde hat derzeit nur eine NAS und dort eine gewachsene Ordner-Struktur. Durch die Installation eines neuen Server bietet sich an hier eine neuen Ordnerstruktur anzulegen. Mit dem Tool brauchen wir nur eine Übersicht der jetzigen Struktur um planen zu können, wie die Daten in die neue Struktur kopiert werden sollen.
Gruß, Herry
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 308114
Url: https://administrator.de/forum/ordnerstruktur-auslesen-und-optisch-schoen-ausdrucken-308114.html
Ausgedruckt am: 10.04.2025 um 12:04 Uhr
23 Kommentare
Neuester Kommentar

tree c:\folder

You mean with "icons" or what do you mean exactly with "optisch schön" ? 
Try this:
http://www.infonautics.ch/directorylistprint/indexde.htm
Try this:
http://www.infonautics.ch/directorylistprint/indexde.htm
Zitat von @Akcent:
das kenne ich. Es soll optisch ansprechend sein und man sich nicht hinstellen muß um alles aufzubereiten.
Erkläre mal was an tree nicht ansprechend ist, und was du da noch aufbereiten musst?tree c:\folder
das kenne ich. Es soll optisch ansprechend sein und man sich nicht hinstellen muß um alles aufzubereiten.
Die NAS hat zudem noch viele Freigaben.
Und das hat jetzt was mit dem eigentlichen Topic zu tun?
?? You know that you can use for-loops?! Or use net view or powershell to iterate over all shares !!
You can also do this directly on the NAS: Login via SSH and do it directly on the console.Linux also knows a tree command. and if not it can be installed as a package.
Have you tried the software above?
That's all really one line of code, and that's for sure no work.
You can also do this directly on the NAS: Login via SSH and do it directly on the console.Linux also knows a tree command. and if not it can be installed as a package.
Have you tried the software above?
That's all really one line of code, and that's for sure no work.
Zitat von @Akcent:
Also ein Tool, wo ich die NAS oder IP Adresse eingeben, User-Daten für den Zugriff und dann alles ausgelesen bekomme.
Sowas wird es eher nicht geben. Alternativen wurden dir 2-3 aufgezeigt. Keine von denen scheinst du getestet zu haben.Also ein Tool, wo ich die NAS oder IP Adresse eingeben, User-Daten für den Zugriff und dann alles ausgelesen bekomme.
Gruß Krämer
Hallo Herry,
z.B. mit Powershell:
Es fragt am Anfang nach dem FQDN/IP des NAS, liest dessen Shares mit net view aus und erstellt für jedes Share eine Textdatei mit dem Namen des NAS und des Sharenamens mit der Ausgabe von Tree im Verzeichnis des PS-Skripts.
Willst du stattdessen alle Shares mit deren Inhalt in einer einzigen Textdatei (getrennt mit Strich) auflisten kannst du stattdessen das hier nehmen:
Der User mit dem das Skript läuft sollte natürlich über entsprechende Rechte auf dem NAS verfügen.
Grüße Uwe
z.B. mit Powershell:
cls
$root = Split-Path $MyInvocation.MyCommand.Definition -Parent
function ConvertFrom-CP850([string[]]$string){
$cp850 = [System.Text.Encoding]::GetEncoding(850)
$string | %{$cp850.GetString([System.Console]::OutputEncoding.GetBytes($_))}
}
$nas = Read-Host "FQDN oder IP des NAS eingeben"
$shares = ConvertFrom-CP850 (. net.exe view $nas | select -Skip 7 | ?{$_ -notmatch '^(Der Befehl|The command)|^$'} | %{($_ -split '\s+')})
$shares | %{
write-host "Exportiere layout des Shares: $_" -ForegroundColor Green
ConvertFrom-CP850 (tree "\\$nas\$_") | set-content "$root\$nas_$_.txt" -Encoding UTF8
}
Willst du stattdessen alle Shares mit deren Inhalt in einer einzigen Textdatei (getrennt mit Strich) auflisten kannst du stattdessen das hier nehmen:
cls
$root = Split-Path $MyInvocation.MyCommand.Definition -Parent
function ConvertFrom-CP850([string[]]$string){
$cp850 = [System.Text.Encoding]::GetEncoding(850)
$string | %{$cp850.GetString([System.Console]::OutputEncoding.GetBytes($_))}
}
$nas = Read-Host "FQDN/IP des NAS eingeben"
$cred = Get-Credential -Message "Geben sie die Zugangsdaten für das NAS an"
write-host "Anmeldung am NAS ..." -F Green -NoNewline
$result = (start-process "net.exe" -ArgumentList "use \\$nas\IPC$ /User:$($cred.UserName) $($cred.GetNetworkCredential().Password)" -Wait -NoNewWindow -PassThru).ExitCode
$shares = ConvertFrom-CP850 (. net.exe view "\\$nas" | select -Skip 7 | ?{$_ -notmatch '^(Der Befehl|The command)|^$'} | %{($_ -split '\s+')})
if ($result -eq 0){
$shares | %{
write-host "Exportiere layout des Shares: $_" -ForegroundColor Green
"$('-'*60)`r`n$(ConvertFrom-CP850 (tree "\\$nas\$_") | out-string)" | Add-Content "$root\$nas.txt" -Encoding UTF8
}
}else{
Write-Error "Fehler bei der Anmeldung am NAS '$nas' (Credentials/ FQDN falsch?). Error Code: $result"
}
Grüße Uwe
Zitat von @Akcent:
das mit dem PS sieht nicht schlecht aus.
2 Fragen:
- wie bekomme ich das in eine Textdatei unter meine Dokumente
Zweites Skript nehmen und Variable $root anpassen, das ist der Pfad für die Ausgabe. Die Textdatei bekommt dann den Namen/IP des NASdas mit dem PS sieht nicht schlecht aus.
2 Fragen:
- wie bekomme ich das in eine Textdatei unter meine Dokumente
$root = "c:\users\UserXYZ\Documents"
- wie bekomme ich die Unterordner mit ausgegeben die in den einzelne Shares vorhanden sind
?? Wird doch schon gemacht. Les doch bitte meine Erläuterungen, das steht dort alles schonAusprobieren und feddich! Geht hier einwandfrei.

@colinardo Works like a charm
. Thank you!
Lass das Skript mit den Berechtigungen laufen welcher genügend Rechte auf das NAS hat, oder hinterlege diese im Tresor für genau den verwendeten FQDN oder IP.
Nur den FQDN oder die IP eingeben mehr nicht > keine Pfade etc. Bei @129813 läufts ja auch ... Hier sowohl unter Windows 7 als auch Windows 10.
Nur den FQDN oder die IP eingeben mehr nicht > keine Pfade etc. Bei @129813 läufts ja auch ... Hier sowohl unter Windows 7 als auch Windows 10.
Dann lege wie gesagt die Credentials vorher in den Tresor oder verbinde dich vorher mit der IPC$ Freigabe des NAS.
Bis du wirklich ein Windows Server Admin? Das sind doch absolute Security-Grundlagen für den Zugriff auf SMB-Freigaben ... 
Zugriff solltest du also schon vorher haben bevor du das Skript verwendest. Man kann sich das natürlich noch mit ins Skript einbauen, aber das hatte ich dann schon erwartet das du das selber machst
.
Hab's dir mal oben in die zweite Funktion eingebaut (Zeile 8-10).
net use \\NAS-FQDN\IPC$
Zugriff solltest du also schon vorher haben bevor du das Skript verwendest. Man kann sich das natürlich noch mit ins Skript einbauen, aber das hatte ich dann schon erwartet das du das selber machst
Hab's dir mal oben in die zweite Funktion eingebaut (Zeile 8-10).
# ....
$cred = Get-Credential -Message "Geben sie die Zugangsdaten für das NAS an"
write-host "Anmeldung am NAS ..." -F Green
. net.exe use "\\$nas\IPC$" "/User:$($cred.UserName)" $($cred.GetNetworkCredential().Password)
# ...