Busfan 1 Geschrieben 18. November 2019 Melden Teilen Geschrieben 18. November 2019 Hallo, ich bin noch Noob in puncto PS. Ich habe mir das Module psfoldersize installiert da ich einige Netzwerkordner und deren Unterordner überprüfen muss. Wenn ich versuche (lokal auf meinem PC) einen Ordner samt Unterordner abzufragen erhalte ich folgende Fehlermeldung: Get-FolderSize : Es wurde kein Positionsparameter gefunden, der das Argument "True" akzeptiert. In Zeile:1 Zeichen:1 + Get-FolderSize -Path "C:\Users" -ShowSubItems $true Kann mir jemand auf die Sprünge helfen warum? Vielen Dank! Zitieren Link zu diesem Kommentar
testperson 1.676 Geschrieben 18. November 2019 Melden Teilen Geschrieben 18. November 2019 Hi, wenn ich das richtig sehe, kennt das Script "-ShowSubItems" nicht. Was möchtest du denn erreichen? Gruß Jan Zitieren Link zu diesem Kommentar
tesso 375 Geschrieben 18. November 2019 Melden Teilen Geschrieben 18. November 2019 Ich gebe Jan Recht. Habe mir dasSkript gerade angesehen, dort gibt es kein ShowSubItems-Paramter. Zitieren Link zu diesem Kommentar
Busfan 1 Geschrieben 18. November 2019 Autor Melden Teilen Geschrieben 18. November 2019 okay, so steht es jedenfalls in der Anleitung. Gleiches Problem tritt auch bei den Modules DRTools auf, da gibt es auch ein Tool zum Auflisten der Ordner und Unterordner. Ich möchte mir die Ordner samt Unterordner eines Netzwerkshares nach Größe auflisten lassen, damit ich sehe wo mein Speicherplatz hinverschwindet. Zitieren Link zu diesem Kommentar
testperson 1.676 Geschrieben 18. November 2019 Melden Teilen Geschrieben 18. November 2019 Dann ist evtl. TreeSize (https://www.jam-software.de/treesize/) o.ä. ein einfacherer und schnellerer Ansatz. Ansonsten müsstest du wohl ein wenig "Logik" mit einem Script um "Get-FolderSize" herum reinbringen. Zitieren Link zu diesem Kommentar
tesso 375 Geschrieben 18. November 2019 Melden Teilen Geschrieben 18. November 2019 vor 37 Minuten schrieb Busfan: okay, so steht es jedenfalls in der Anleitung. Gleiches Problem tritt auch bei den Modules DRTools auf, da gibt es auch ein Tool zum Auflisten der Ordner und Unterordner. Woher hast du das Modul? Zitieren Link zu diesem Kommentar
Busfan 1 Geschrieben 18. November 2019 Autor Melden Teilen Geschrieben 18. November 2019 Über die PowerShell Gallery: Install-module -name PSFoldersize Install-module -name DRTools Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 18. November 2019 Melden Teilen Geschrieben 18. November 2019 (bearbeitet) Wenn das 'ne einmalige Aktion sein soll, würd' ich auch TreeSizeFree oder SequoiaView empfehlen. Da bekommt man die Größenverteilung sehr gut grafisch aufbereitet. Wenn das eine regelmäßige, eventuell noch automatisch laufende Aktion sein soll, könntest Du 'ne Funktion benutzen, die ich vor 'ner Weile mal für genau solche Aufgaben gebaut habe. <# .SYNOPSIS Show information about a particular folder .DESCRIPTION The function Get-FolderInfo determines the size and the count of the files and subfolders of a given directory. (To improve the performance of the function it utilizes the command line tool Robocopy ) .PARAMETER Path Complete path of the folder. .EXAMPLE PS C:\> Get-FolderInfo Without any further parameter Get-FolderInfo determines the size and the count of files and subfolders of the current directory. .EXAMPLE PS C:\> Get-FolderInfo C:\windows\system32 This command will determine the size and the count of files and subfolders of the given directory. .EXAMPLE PS C:\> Get-ChildItem C:\users -Directory | Get-FolderInfo This command will determine the size and the count of files and subfolders of the directory C:\users. .EXAMPLE PS C:\> 'C:\temp', 'C:\Windows\Temp', "$ENV:TEMP" | Get-FolderInfo This command will determine the size and the count of files and subfolders of given three temp directories. .EXAMPLE PS c:\> Get-ChildItem -Path 'a particular folder containing subfolders' -Directory | Get-FolderInfo | Sort-Object -Property SubFolders,FileCount,Bytes -Descending This command will determine the size and the count of files and subfolders of 'a particular folder containing subfolders' and sort it descanding for SubFolder, FileCount and Bytes. .INPUTS System.IO.DirectoryInfo .OUTPUTS System.String System.Int64 .NOTES Author: O.Soyk Date: 20150604 .LINK http://social.technet.microsoft.com/wiki/contents/articles/1073.robocopy-and-a-few-examples.aspx .LINK https://technet.microsoft.com/en-us/library/cc733145(v=ws.10).aspx #> Function Get-FolderInfo { [CmdletBinding()] [OutputType([System.String])] param( [Parameter(ValueFromPipeline = $true, Position = 0, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [System.IO.DirectoryInfo[]] $Path = (Get-Location).Path ) process { Foreach ($Item in $Path) { $Result = robocopy $($Item.FullName) $([System.IO.Path]::GetTempPath()) /E /L /R:0 /NFL /NDL /NC /BYTES /NP /NJH /XJ /XJD /XJF Write-Verbose "Result:`n'$($Result)'" $Result -match '(FEHLER|ERROR)\s5\s\(' | Out-Null If ($Matches) { Write-Debug "`nFolder: '$($Item)' - 'Access denied'`n" } $Result | Where-Object { $_ -match '(Dateien|Files\s)\:\s+(\d+)\s' } | Out-Null Write-Verbose "Matches:`n '$($Matches)'" $FileCount = $Matches[2] $Result | Where-Object { $_ -match '(Verzeich\.|Dirs\s)\:\s+(\d+)\s' } | Out-Null $SubfolderCount = $Matches[2] $Size = (($Result | Where-Object { $_ -match 'Bytes' }).trim() -replace '\s+', ' ').split(' ')[2] [PSCustomObject]@{ Path = $Item.FullName Subfolders = [INT64]$SubfolderCount FileCount = [INT64]$FileCount Bytes = [Int64]$Size } } } } Hilfe und Beispiele sind dabei ... versuch ma! bearbeitet 18. November 2019 von BOfH_666 Zitieren Link zu diesem Kommentar
Busfan 1 Geschrieben 18. November 2019 Autor Melden Teilen Geschrieben 18. November 2019 @BOfH_666 Danke für den Input! Ich muss mir dein Script noch genauer ansehen. Bisher komme ich damit recht weit, nur würde ich gerne den Zeitraum eingrenzen auf die letzten 24h: gci \\xxx\xxx\ -r | sort -descending -property length | where length -gt 1000000 | select name, @{Name="Megabytes";Expression={[Math]::round($_.length / 1MB, 2)}}, creationtime | Select-Object -First 200 Kann mir bitte nochmal jemand helfen, danke... Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 18. November 2019 Melden Teilen Geschrieben 18. November 2019 Wieso "Zeitraum"? Bisher war davon die Rede, dass Du Ordnergrößen ermitteln wolltest. Genau das macht die Funktion, die ich gepostet hatte. Davon unabhängig - formatierst Du bitte Code als Code, wenn Du Code postest? Danke. Zu Deinem letzten Code-Schnipsel - Wenn Du Get-ChildItem mit dem Parameter -Recurse benutzt und dann nach der Property length sortierst, dann sortierst Du Dateien nach der Größe, und das unabhängig vom Verzeichnis, in dem die Dateien liegen. Vielleicht wirst Du Dir erstmal darüber klar, was genau Du eigentlich machen möchtest. Zitieren Link zu diesem Kommentar
Busfan 1 Geschrieben 18. November 2019 Autor Melden Teilen Geschrieben 18. November 2019 vor einer Stunde schrieb BOfH_666: Wieso "Zeitraum"? Bisher war davon die Rede, dass Du Ordnergrößen ermitteln wolltest. Genau das macht die Funktion, die ich gepostet hatte. Weil ich wissen möchte wer in den letzten 24h das Fileshare so angefüllt hat vor einer Stunde schrieb BOfH_666: Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 18. November 2019 Melden Teilen Geschrieben 18. November 2019 ym2c: Alles, was mit Dateisystemen zu tun hat und mehr als x Ordner/Dateien betrifft, macht man nie mit PS. Ersetze x durch eine Zahl Deiner Wahl, 1.000 wäre mein Vorschlag. Das geht nativ um mehrere Zehnerpotenzen schneller. Und das eine oder andere Tool hat auch ein Commandline-Interface. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 18. November 2019 Melden Teilen Geschrieben 18. November 2019 vor 1 Stunde schrieb Busfan: Weil ich wissen möchte wer in den letzten 24h das Fileshare so angefüllt hat ... und das siehst Du an den neu angelegten bzw. angewachsenen Dateien? Wie so häufig hier im Scripting Forum, ist das eigentliche Problem nicht ein Script oder ein Befehl, der nicht wie gewünscht, bzw. wie erwartet funktioniert. Das Problem ist das Unverständnis bzw. die Unkenntnis der gemanagten Systeme. Was ist denn Deine eigentliche Aufgabenstellung? Was machst Du denn mit der Information, wer das Fileshare gefüllt hat? Wird derjenige entlassen? Werden seine Daten wieder gelöscht? Ist diese Datenerhebung mit dem Betriebsrat abgestimmt? Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 18. November 2019 Melden Teilen Geschrieben 18. November 2019 Fällt mir grad so ein: Wenn das ein Windows-Fileserver ist - FSRM sollte dazu vielleicht auch was ausspucken. Bin jetzt aber kein Fileservice-Mensch... Olaf hat es aber mal wieder auf den Punkt gebracht: Organisatorische Probleme kann man mit Technik nur schwer beseitigen Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 18. November 2019 Melden Teilen Geschrieben 18. November 2019 Wie Mark Minasi zu sagen pflegte: "There's no silicon-based solution to a carbon-based problem." Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.