akcent
Goto Top

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

Content-Key: 308114

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

Printed on: April 25, 2024 at 13:04 o'clock

Mitglied: 129813
129813 Jun 24, 2016 updated at 10:26:27 (UTC)
Goto Top
tree c:\folder
Regards
Member: Akcent
Akcent Jun 24, 2016 at 10:35:41 (UTC)
Goto Top
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.
Mitglied: 129813
129813 Jun 24, 2016 updated at 10:53:17 (UTC)
Goto Top
You mean with "icons" or what do you mean exactly with "optisch schön" ? face-smile

Try this:
http://www.infonautics.ch/directorylistprint/indexde.htm
Member: Kraemer
Kraemer Jun 24, 2016 at 11:39:32 (UTC)
Goto Top
Zitat von @Akcent:

tree c:\folder

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?

Die NAS hat zudem noch viele Freigaben.
Und das hat jetzt was mit dem eigentlichen Topic zu tun?
Member: Akcent
Akcent Jun 25, 2016 at 06:57:57 (UTC)
Goto Top
tree c:\folder
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?

Hab mir das nochmal angeschaut. Ich denke, da könnte wirklich reichen. Müßte halt nur für jeden der 20 Freigaben den Befehl absetzten, was aber machbar ist.
Member: Akcent
Akcent Jul 01, 2016 at 06:11:13 (UTC)
Goto Top
Mit Tree komme ich nicht weiter / zu Zeitaufwendig

Es gibt zu viele Freigaben
01-07-_2016_08-10-24
Mitglied: 129813
129813 Jul 01, 2016 updated at 06:25:27 (UTC)
Goto Top
?? 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.
Member: Kraemer
Kraemer Jul 01, 2016 at 06:25:42 (UTC)
Goto Top
Das sind gerade mal 84 Freigaben. Für eine einmalige Geschichte wohl überhaupt kein Problem. Ansonsten würde ein kleines Script helfen. Nur das zu basteln würde dich wahrscheinlich mehr Zeit kosten, wie die Freigaben einmal durchzugehen.

Gruß Krämer
Member: Akcent
Akcent Jul 01, 2016 at 09:50:10 (UTC)
Goto Top
aus dem Grund suche ich ja ein Tool das mir das automatisch ausliest.

Ich brauche auch nur die Ordnerstruktur um mit den Usern abzuklären, welche Daten auf den neuen Server in welches neuen Ordner sollen.
Also ein Tool, wo ich die NAS oder IP Adresse eingeben, User-Daten für den Zugriff und dann alles ausgelesen bekomme.
Member: Kraemer
Kraemer Jul 01, 2016 at 10:31:52 (UTC)
Goto Top
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.

Gruß Krämer
Member: Akcent
Akcent Jul 01, 2016 at 10:33:53 (UTC)
Goto Top
doch sonst hätte ich nach Tagen den Thread nicht noch einmal gepostet.
Member: Kraemer
Kraemer Jul 01, 2016 at 10:38:35 (UTC)
Goto Top
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
Funktioniert bei mir einwandfrei.

Krämer
Member: colinardo
Solution colinardo Jul 01, 2016 updated at 19:16:50 (UTC)
Goto Top
Hallo Herry,
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  
}
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:
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"  
}
Der User mit dem das Skript läuft sollte natürlich über entsprechende Rechte auf dem NAS verfügen.

Grüße Uwe
Member: Akcent
Akcent Jul 01, 2016 at 13:55:42 (UTC)
Goto Top
das mit dem PS sieht nicht schlecht aus.
2 Fragen:
- wie bekomme ich das in eine Textdatei unter meine Dokumente
- wie bekomme ich die Unterordner mit ausgegeben die in den einzelne Shares vorhanden sind
Member: colinardo
colinardo Jul 01, 2016 updated at 14:03:26 (UTC)
Goto Top
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 NAS
$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 schon

Ausprobieren und feddich! Geht hier einwandfrei.
Mitglied: 129813
129813 Jul 01, 2016 updated at 14:14:30 (UTC)
Goto Top
@colinardo Works like a charm face-smile. Thank you!
Member: Akcent
Akcent Jul 01, 2016 at 17:07:20 (UTC)
Goto Top
Der Export auf dem Bildschirm zeigt die Shares an.

Die Text-Datei diesen:

Ungültige Laufwerksangabe
Ungültige Laufwerksangabe
Ungültige Laufwerksangabe
Ungültige Laufwerksangabe

Evtl fehlt hier noch die Übergabe der Account-Daten ?
Member: colinardo
colinardo Jul 01, 2016 updated at 17:39:53 (UTC)
Goto Top
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.
Member: Akcent
Akcent Jul 01, 2016 at 18:21:09 (UTC)
Goto Top
Der User der das Script startet ist ein Dom-Admin
Auf der NAS gibt es diesen nicht.
Die NAS bietet auch keine AD-Integration
Member: colinardo
colinardo Jul 01, 2016 updated at 18:53:36 (UTC)
Goto Top
Dann lege wie gesagt die Credentials vorher in den Tresor oder verbinde dich vorher mit der IPC$ Freigabe des NAS.
net use \\NAS-FQDN\IPC$
Bis du wirklich ein Windows Server Admin? Das sind doch absolute Security-Grundlagen für den Zugriff auf SMB-Freigaben ... face-wink

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 face-smile.
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)  
# ...
Member: Akcent
Akcent Jul 01, 2016 at 19:15:31 (UTC)
Goto Top
habe eben das perfekte Tool gefunden.
DirPrintOK
Member: colinardo
colinardo Jul 01, 2016 updated at 19:26:10 (UTC)
Goto Top
Ich danke dir auch ...face-confused
Member: Kraemer
Kraemer Jul 02, 2016 at 17:31:36 (UTC)
Goto Top
In solchen Momenten wünsche ich mir eine VoteKick / VoteBan-Funktion in Foren...