Je souhaite déterminer quels fichiers/types de fichiers consomment le plus d'espace sur le serveur de fichiers. En raison du fait que beaucoup d'utilisateurs ont créé des fichiers avec un nom/chemin de plus de 260 caractères gc ne fonctionne pas. (Raccourcis-in-shortcuts-in-shortcuts-infinity)Solution de contournement Get-Childitem
Mon étape suivante consistait à créer une solution de contournement par . utiliser quelque chose qui affiche, le nom du fichier de la taille et le chemin sans limitation MAX_PATH var (ROBOCOPY)
Voici ma fonction:
Function Get-RoboFileSize($source_name){
$filelog=robocopy.exe /e /l /njh /njs /ndl /fp /nc /bytes $source_name $env:Temp
foreach ($item in $filelog){
if ($item -like "*$source_name*"){
$base=$item -Replace "[\s]",""
$Filename=$base -Replace "^[0-9]{1,}",""
$Filesize=$base -Replace "[^\d][[email protected]#\^\$&\*\(\)-_\+=\[\]\{\}\|\\,\.\?\!\%\§öäüÖÄÜßáàðÞ]{1,}",""
New-Object PSObject -Property @{
Filename=$Filename
FileSize= ("{0:#}" -f($Filesize/1MB))
}
}
}
}
Cette approche fonctionne, mais mon problème est qu'il consomme beaucoup des ressources.
Est-ce que quelqu'un a une idée de comment améliorer cette fonction .... peut-être une idée pour une autre solution de contournement?
Exécutez-vous Windows 2008R2? Si tel est le cas, essayez les rapports de File Services Resource Manager. – vonPryz
Il veut évaluer cela sur plusieurs serveurs avec différents OS (2003, 2003 R2, 2008, 2008 R2) et planifier un script qui envoie et un résumé avec les 100 plus grands de chaque serveur – PointerNullException