Question Aide pour de l'optimisation

Plus d'informations
il y a 8 ans 8 mois #23985 par Laurent Dardenne
Dans ma signature il y a un lien sur mes tutos, dont un sur la gestion d'erreur.

Pour le nommages des job, c'est dans le cas d'évolution du traitement où tu aurais d'autres Job.
Utiliser get-job|remove-job implique de ne pas avoir d'autres job dans la session powershell où tu exécutes ton script.
Et l'état du job n'est pas testé, le code suppose que tout fonctionne.

Pour Invoke-DatabaseQuery le bloc catch écrit dans le fichier de log mais ne redéclenche pas l'exception, l'appelant ne sais pas ce qui se passe en cas d'erreur.
Ici il s'agit d'une règle de gestion de base, pas de duplication d'entrée, mais dans le cas où il s'agit d'une autre exception, le msg est identique :whistle:
Tu devrais ajouter un filtre sur le type d'exception.

Les améliorations concernent plus l'aspect support: On sait que cela ne marche pas. Reste à savoir où dans le code et pourquoi...<br><br>Message édité par: Laurent Dardenne, à: 20/07/17 11:55

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 8 mois #23986 par Betrancourt
Réponse de Betrancourt sur le sujet Re:Aide pour de l'optimisation
Merci beaucoup ^^ je pense que grâce à vous je peut m'occuper du reste maintenant, je pensais pas que le Powershell serait aussi bien en commençant :D

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 8 mois #23996 par Betrancourt
Réponse de Betrancourt sur le sujet Re:Aide pour de l'optimisation
ReBonjour ! je me permet de reposer une question sur le même code, voila j'ai bien avancer sur le petit projet ^^ mais il me reste encore 2 / 3 soucis que je n'arrive pas à régler :S

1 : J'ai crée une liste XML (en pièce-jointe) qui j'ai liée au Powershell pour crée une liste d'exclusion de fichier à ne pas scanner dans le répertoire c:\
Voici mon code du coup :
[code:1]
$apps = get-xml -configfilepath \&quot;C:\Users\Y0598843\Downloads\Powershell Test\Stage\StageFranckParrinello\projet.xml\&quot;
Write-log -Level \&quot;INFO\&quot; -Message \&quot;Liste des applications à détecter :\&quot;
foreach($app in $apps.apps.app) {

Write-log -Level \&quot;INFO\&quot; -Message \&quot;$($app.id) : $($app.path)\&quot;
}


[System.Collections.ArrayList]$Folders = get-childitem -Directory C: | Select-Object FullName | ForEach-Object { $_.Fullname = $_.Fullname.trim() ; return $_}
$FoldersToExclude = get-xml -ConfigFilePath \&quot;C:\Users\Y0598843\Downloads\Powershell Test\Stage\StageFranckParrinello\projetExclude.xml\&quot;
foreach ($FolderToExclude in $FoldersToExclude.FoldersToExclude.FoldertoExclude) {
foreach($Folder in $Folders) {
if ($Folder.FullName -eq $FolderToExclude.path) {
$Folders.Remove($Folder)
break
}
}
}
[/code:1]


Le truc c'est que les variables prennent bien les valeurs des \&quot;FolderToExclude\&quot; mais le script exécute quand même un scan dans ces fichiers... je ne comprend pas, c'est pas logique xD

2 : Donc pour reparler du scan et du code du dessus, le script est censé scannez dans le C: pour ensuite faire son boulot, le problème assez bizarre qui intervient c'est que le logiciel cherche seulement dans le dossier local par exemple si je fait [code:1]cd \&quot;C:\Users\Public\&quot; [/code:1] il ne va scannez que dans le répertoire \&quot;public\&quot; au lieu de la racine c:\


excusez moi je sais que mon message est long, mais ça parait tellement dur a expliquer :/

Message édité par: Valeze, à: 21/07/17 10:22<br><br>Message édité par: Valeze, à: 21/07/17 10:26

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 8 mois #23998 par Laurent Dardenne
A priori tu précises ici un chemin relatif :
[code:1]cd c:\windows
PS C:\windows&gt; get-childitem -Directory C:
Directory: C:\windows
...
[/code:1]
Donc pour PS 'c:' n'est pas un path mais un nom de lecteur, petit nuance. Avec [code:1]c:\[/code:1] c'est déjà + mieux :P<br><br>Message édité par: Laurent Dardenne, à: 21/07/17 15:42

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 8 mois #23999 par Betrancourt
Réponse de Betrancourt sur le sujet Re:Aide pour de l'optimisation
Merci de m'avoir répondu mais je crois être le seul à avoir ce problème dans mon secteur informatique :S

voici pour expliquer ce qui arrive quand je fait cette commande dans ma console PS :

[code:1]
PS.C:\windows &gt; cd \&quot;c:\users\Y0598843\desktop\&quot;
PS.C:\users\Y0598843\desktop &gt; get-childitem -Directory C:
(affichage du dossiers DESKTOP....)

[/code:1]

Alors que justement j'aimerai :

[code:1]
PS.C:\windows &gt; cd \&quot;c:\users\Y0598843\desktop\&quot;
PS.C:\users\Y0598843\desktop &gt; get-childitem -Directory C:
(affichage du dossiers C: ....)

[/code:1]


c'est cela qui me pose problème, le stagiaire qui travaille avec moi et mon tuteur n'ont pas de problème pour eux cela fonctionne, c'est pourtant une commande tellement simple.. ca m'énerve je suis bloqué a cause de ca :pinch:<br><br>Message édité par: Valeze, à: 21/07/17 15:21

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 8 mois #24001 par Laurent Dardenne
Valeze écrit:

ca m'énerve je suis bloqué a cause de ca :pinch:

Tu fais bien du Powershell B)

Est-ce la même version de PS ($Psversiontable) et le même OS ?
J'utilise la v5.1 sous Seven Sp1, testé avec la 5.1 sous WS 2016 et la v6 beta4 sous WS 2016. J'ai le même comportement que toi.

Pour le path du fileSystem il y a ceci à connaitre.

Enfin tu peux vérifier le comportement de la commande ainsi :
[code:1]Trace-Command PathResolution -Expression { get-childitem -Directory C: } -PSHost[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.053 secondes
Propulsé par Kunena