Question
[résolu] foreach
- Philippe
- Hors Ligne
- Modérateur
- Messages : 1778
- Remerciements reçus 21
sur serveur 2003 R2 BiProc et powershell V2 :
pour 407 517 fichiers et 57 972 dossiers
avec la solution \"DU.EXE\" :
6 minutes et 20 secondes de scan de 30 à 50% d'utilisation CPU et 30Mo de mémoire (très peu d'utilisation mémoire en dehors de celle initiale au lancement de powershell.exe)
sur serveur 2008R2 QuadriProc et powershell V2 :
pour 170 962 fichiers et 12 389 dossiers
avec la solution \"DU.EXE\" :
1 minute de scan, de 50 à 70% d'utilisation d'un CPU et 50Mo de mémoire (très peu d'utilisation mémoire en dehors de celle initiale au lancement de powershell.exe)
petite conclusion très très rapide :Il ne faut plus utilisé powershell
Je crois que les repas de fête ont commencer !
plus sérieusement : le script NZO est aussi rapide que \"du.exe\" !
sinon il j'ai refais le test avec la version NZO du script sans option force, parce que j'ai eu le message d'erreur suivant lors du dernier test (merci les utilisateur de MAC) a l'execution du script NZO ce qui impliquais que des fichiers voir des dossiers complets n'avais pas été comptabilisé ! le scan est toujours aussi rapide que l'executable !!
Get-ChildItem : Le chemin d'accès spécifié, le nom de fichier ou les deux sont trop longs. Le nom de fichier qualifié complet doit comprendre moins de 260 caractères et le nom du répertoire moins de 248 caractères.
script utilisé pour les tests :
[code:1]
$dateAvant = Get-Date
c:\temp\Du.exe -v -c \"d:\services\" | ConvertFrom-Csv -Delimiter ',' | Format-Table
$dateApres = Get-Date
$TempsEcoulee = (Get-Date $dateApres) - (Get-Date $dateAvant)
Write-Host (get-date -format T)' - fin scan en '('{0:00}:{1:00}:{2:00}' -f $TempsEcoulee.Hours,$TempsEcoulee.Minutes,$TempsEcoulee.Seconds)
[/code:1]
conclusion 2 :
- il faut que je fasse un script pour détecté les chemins et les noms de fichier trop long.
- trouver une solution pour géré ce problème dans un script qui doit travailler sur des dossiers dans ce genre de cas
bonne fête de noël à tous
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
6ratgus écrit:
Pour l'analyse d'un nombre important de fichiers c'est connu.Il ne faut plus utilisé powershell
6ratgus écrit:
Je vais le tester.le script NZO est aussi rapide que \"du.exe\" !
6ratgus écrit:
Il existe une API Win32 qui permet cela et sous dotnet un projet Codeplex si je me souviens bien, mais cela oblige à réécrire ce type de traitement.trouver une solution pour gérer ce problème dans un script qui doit travailler sur des dossiers dans ce genre de cas
Il se peut que NTFS ne soit plus adapté au volume de données actuelle, mais n'en étant pas un spécialiste cela reste à confirmer.
6ratgus écrit:
Merci, bon réveillon.bonne fête de noël à tous
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- laucaz
- Hors Ligne
- Membre senior
- Messages : 48
- Remerciements reçus 0
En premier lieu j'espère que Noël s'est bien passé pour vous.
Laurent, une question : dans les parametres que tu utilises avec \"du.exe\" il y a \"-c\". Ce parametre ne fait apparemment pas partie de ceux attendus par la commande :
[code:1]usage: du.exe [-n [-q] <directory>
-l Specify subdirectory depth of information (default is all levels).
-n Do not recurse.
-q Quiet (no banner).
-v Show size (in KB«») of intermediate directories.[/code:1]
Laurent Dardenne écrit:
[code:1]
C:\Tools\sysinternal\Du\Du.exe -v -c C:\Windows|
ConvertFrom-Csv -Delimiter ','
[/code:1]
Pourrais tu expliquer ce \"-c\" ?
@+
Laurent
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
- Messages : 1778
- Remerciements reçus 21
@titou4 : regarde la version de ton DU.EXE :
[code:1]Du v1.5 - report directory disk usage
Copyright (C) 2005-2013 Mark Russinovich
Sysinternals - www.sysinternals.com
usage: c:\temp\du [-c[t]] [-l <levels> | -n | -v] [-u] [-q] <directory>
-c Print output as CSV. Use -ct for tab delimiting.
-l Specify subdirectory depth of information (default is one level).
-n Do not recurse.
-q Quiet (no banner).
-u Count each instance of a hardlinked file.
-v Show size (in KB«») of all subdirectories.
CSV output is formatted as:
Path,CurrentFileCount,CurrentFileSize,FileCount,DirectoryCount,DirectorySize[/code:1]
Bonjour Laurent
Merci pour tes réponses
Laurent Dardenne écrit:
c'est bien comme ca que je le voyer !Il existe une API Win32 qui permet cela et sous dotnet un projet Codeplex si je me souviens bien, mais cela oblige à réécrire ce type de traitement.
j'ai pour l'instant trouver le moyen de les reperer ou presque car les premiers tests ne donne rien
En avril 2010 tu parler déjà de la
solution codeplex
et des sites qui parle du sujet :
Maximum Path Length Limitation
Long Paths in .NET, Part 1 of 3 [Kim Hamilton]
et le BCL : Base Class Libraries
Connexion ou Créer un compte pour participer à la conversation.
- laucaz
- Hors Ligne
- Membre senior
- Messages : 48
- Remerciements reçus 0
6ratgus écrit:
Bonjour titou4 et Laurent
@titou4 : regarde la version de ton DU.EXE :
[code:1]Du v1.5 - report directory disk usage
Copyright (C) 2005-2013 Mark Russinovich
Sysinternals - www.sysinternals.com
usage: c:\temp\du [-c[t]] [-l <levels> | -n | -v] [-u] [-q] <directory>
-c Print output as CSV. Use -ct for tab delimiting.
-l Specify subdirectory depth of information (default is one level).
-n Do not recurse.
-q Quiet (no banner).
-u Count each instance of a hardlinked file.
-v Show size (in KB«») of all subdirectories.
CSV output is formatted as:
Path,CurrentFileCount,CurrentFileSize,FileCount,DirectoryCount,DirectorySize[/code:1]
Merci j'my met de suite
@+
Laurent
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
- Messages : 1778
- Remerciements reçus 21
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- [résolu] foreach