none
Get-ChildItem - Verzeichnisse rekursiv zählen - Unterschiedliches Ergebnis zu Verzeichnis->Eigenschaft->Inhalt->Anzahl Ordner RRS feed

  • Frage

  • Hallo liebe Community,

    ich bin gerade dran, einem Script einen Pfad mitzugeben und dieses soll mir die Anzahl der Unterverzeichnisse liefern.

    An sich eigentlich nicht's weltbewegendes, aber ich bekomme eine nicht nachvollziehbare Anzahl zurück.

    Führe ich folgende Befehle aus, bekomme ich als Ergebnis 28994.

    (gci -Path "..\..." -Recurse | Where-Object {$_.PSisContainer -eq $true}).Count
    
    # oder
    
    (gci -Path "..\..." -Recurse | Where-Object {$_.Mode -like "d*"}).Count

    Gehe ich aber auf angegebenes Verzeichnis und klicke mit Rechtsklick auf Eigenschaften, wird die Anzahl der Dateien und Verzeichnisse unter Inhalt berechnet:

    Inhalt: 369.378 Dateien, 30.516 Ordner

    Kann mir jemand erklären, woher diese Differenz zwischen den zwei Werten kommen kann?

    Wäre super!

    Danke und beste Grüße

    Freitag, 28. November 2014 13:16

Antworten

  • Hallo,

    also wenn es durchlaeuft ohne Access Denied Fehler, d.h. er kann dann die in diesen Ordner vorhanden Unterordner natuerlich nicht mitzaehlen, koennte es auch an versteckten Verzeichnissen liegen, fuege mal beim Get-ChildItem den Parameter -Force hinzu.

    Beste Gruesse
    brima



    Freitag, 28. November 2014 13:30

Alle Antworten

  • Hallo,

    also wenn es durchlaeuft ohne Access Denied Fehler, d.h. er kann dann die in diesen Ordner vorhanden Unterordner natuerlich nicht mitzaehlen, koennte es auch an versteckten Verzeichnissen liegen, fuege mal beim Get-ChildItem den Parameter -Force hinzu.

    Beste Gruesse
    brima



    Freitag, 28. November 2014 13:30
  • Ab Windows 2012 / 8 kann das Modul NTFSSecurity helfen, auch das zu lösen: https://gallery.technet.microsoft.com/scriptcenter/1abd77a5-9c0b-4a2b-acef-90dbb2b84e85

    Der Befehlt Get-ChildItem2 (dir2) funktioniert ähnlich wie der entsprechende Built-in Befehl, hat aber nicht mehr das Verzeichnispfadlimit von 260 Zeichen. Zudem ist der Befehl ca. 5 - 15x schneller, als der Built-in Befehl.

    Zudem gibt es den Befehl Enable-Privileges, der das Backup und Restore Privilege aktiviert. So kommst Du auch in Ordner, ohne über die ACL Zugriff zugewisen bekommen zu haben.


    -Raimund


    Dienstag, 2. Dezember 2014 13:51