14e FileCollector (PowerShell mit GUI)

Kurzbeschreibung

Ein hilfreiches Skript um ganze Verzeichnisse nach allen oder bestimmten Dateitypen aufzulisten (Verzeichnis-Inventur nach CSV) Dieses Tool inventarisiert einen gewählten Ordner rekursiv und exportiert eine CSV-Datei (UTF-8 mit BOM).


Es erfasst pro Datei:
Verzeichnis, Dateiname, Dateiendung, Grösse in Byte, Erstellungsdatum, letztes Änderungsdatum, Besitzer (Owner) und optional den letzten Bearbeiter (LastEditor). Fortschritt, Status und ein Log-Bereich werden im Fenster angezeigt. Nach erfolgreichem Lauf kann die erzeugte CSV direkt mit der verknüpften Anwendung geöffnet werden.

Voraussetzungen

  • Windows 10 oder neuer (WPF-Oberfläche, Windows Shell erforderlich).
  • PowerShell 5.1 (Windows PowerShell) oder PowerShell 7.x (pwsh) auf Windows.
  • Start im STA-Modus empfohlen:
    PS5.1: powershell.exe -STA -File "Pfad\Inventur.ps1"
    PS7.x: pwsh.exe -STA -File "Pfad\Inventur.ps1"
  • Ausführungsrichtlinie: Bei Bedarf Skript entsperren bzw. temporär erlauben:
    Unblock-File "Pfad\Inventur.ps1"
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
  • Für eine korrekte Anzeige von Umlauten die .ps1-Datei als UTF-8 mit BOM gespeichert.
  • Die Option „Letzten Bearbeiter“ nutzt Windows-Shell-Funktionen (Property Store), wofür ein STA-Thread benötigt wird (im Skript bereits berücksichtigt).

Erfasste Spalten (CSV)

  • Directory: vollständiger Ordnerpfad
  • FileName: Dateiname
  • Extension: Dateiendung (inklusive Punkt, z. B. .txt)
  • SizeBytes: Dateigrösse in Byte
  • Creation_YYYYMMDD_HHmm: Erstellungsdatum (yyyyMMdd HHmm)
  • LastWrite_YYYYMMDD_HHmm: letztes Änderungsdatum (yyyyMMdd HHmm)
  • Owner: NTFS-Besitzer (z. B. DOMAIN\Benutzer)
  • LastEditor: letzter Bearbeiter (falls ermittelbar, siehe unten)

Bedienung – Schritte

  1. Quellordner wählen.
  2. Ziel-CSV festlegen (Standardvorschlag: Desktop).
  3. Optional Endungen filtern (z. B. txt;log oder .pdf .xlsx).
  4. Trennzeichen wählen: „Auto (System)“ nimmt den Listentrenner der Region (z. B. „,“ in ENU, „;“ in DEU/FRA/ITA) oder explizit „;“ bzw. „,“.
  5. Optional „Versteckte/Systemdateien einschliessen“.
  6. Optional „Letzten Bearbeiter ermitteln“ aktivieren:
    • Liest bei Office-Open-XML (docx, xlsx, pptx/m) aus docProps/core.xml (lastModifiedBy).
    • Zusätzlich Fallback über Windows Property Store: System.Document.LastAuthor bzw. System.Author.
    • Optionaler weiterer Fallback (Checkbox): Wenn LastEditor leer bleibt, Owner als LastEditor verwenden.
  7. Start drücken. Fortschritt und Status werden angezeigt; das Log listet Meldungen zur Diagnose.
  8. Nach Abschluss kann „CSV öffnen“ verwendet werden, um die Datei mit der Standardanwendung zu öffnen.

Filter für Dateiendungen

  • Mehrere Endungen mit Komma, Semikolon oder Leerzeichen trennen.
  • Formate „txt“, „.txt“ oder „*.txt“ sind möglich; intern wird „.txt“ verwendet.
  • Beispiel: txt;log oder .csv .xlsx oder *.pdf

Ausgabeformat (CSV)

  • UTF-8 mit BOM (Excel-freundlich).
  • Datumsformat ist kulturunabhängig (yyyyMMdd HHmm) und gut sortierbar.
  • Trennzeichen je nach Auswahl („Auto“ = aktueller Listentrenner des Systems).

Leistung und Verhalten

  • Streaming-Schreiben: CSV wird zeilenweise geschrieben (speicherschonend, geeignet für grosse Datenmengen).
  • Fortschritt: Zunächst werden passende Dateien gezählt, anschliessend exportiert; Prozentanzeige basiert auf der Gesamtanzahl.
  • Die Ermittlung von Owner und insbesondere von LastEditor (Property Store) kann die Laufzeit erhöhen. Für maximale Geschwindigkeit die Option „Letzten Bearbeiter ermitteln“ deaktivieren.

Grenzen und Hinweise

  • LastEditor:
    • Verlässlich für Office-Open-XML-Dateien (docx/xlsx/pptx/m).
    • Property-Store-Felder (LastAuthor/Author) sind nicht in allen Formaten befüllt (z. B. Bilder meist leer).
    • Optionaler Fallback: Owner als LastEditor.
  • Besitzer (Owner) erfordert Zugriffsrechte auf die Datei/den Pfad; auf Netzlaufwerken/OneDrive kann es langsamer sein oder leer bleiben.
  • OneDrive/SharePoint „Dateien bei Bedarf“: Für manche Metadaten muss die Datei lokal verfügbar sein. Bei Platzhaltern kann LastEditor leer sein.
  • Sehr lange Pfade können auf Systemen ohne aktivierte „lange Pfade“-Unterstützung Probleme machen. Ggf. Gruppenrichtlinie/Registry für lange Pfade aktivieren oder Laufwerksbuchstaben verwenden.
  • Excel und Trennzeichen: In anderssprachigen Umgebungen erwartet Excel oft den systemweiten Listen-Trenner. Bei falscher Spaltenaufteilung in Excel das passende Trennzeichen wählen oder in Excel „Daten > Aus Text/CSV“ importieren.

Fehlersuche

  • GUI startet nicht oder schliesst sofort: Skript im STA-Modus starten; sicherstellen, dass die Datei als UTF-8 mit BOM gespeichert ist; eventuelle Parser-Fehler in der Konsole prüfen.
  • Umlaute werden falsch angezeigt: Skript als UTF-8 mit BOM speichern.
  • „CSV öffnen“-Button bleibt deaktiviert: Warten bis 100 % erreicht; Log prüfen. Falls die CSV manuell geöffnet werden soll, den im Feld „CSV-Datei“ eingetragenen Pfad verwenden.
  • CSV öffnet in Excel in einer einzigen Spalte: Trennzeichen anpassen (Auto/„;“/„,“) oder in Excel den Text/CSV-Import nutzen.
  • „Zugriff verweigert“ oder Owner leer: Berechtigungen auf Dateien/Ordner prüfen; auf Netzpfaden kann die Ermittlung eingeschränkt sein.

Datenschutz

  • Das Tool liest Dateieigentümer (Owner) und ggf. Autoreninformationen (LastAuthor/Author, lastModifiedBy) aus. Einsatz bitte in Übereinstimmung mit den internen Datenschutzrichtlinien.

Support

  • Bei Wunsch nach erweiterten Feldern (z. B. FullPath, Checksummen, EXIF-Daten), Mehrsprachigkeit im UI, Protokollierung in Datei, Signierung oder zusätzlichen Filtern kann das Skript erweitert werden.
anhängende Datei(en)
14e FileCollector.ps1
404kb
Inventur_20251125_1152.csv
404kb
Inventur_20251125_1152.xlsx
404kb
Tags