Question Récupérer avec "trap" l'exception "Accès refusé"
- PROUT
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 5 mois 2 semaines #33130
par PROUT
Récupérer avec "trap" l'exception "Accès refusé" a été créé par PROUT
Je n'arrive pas à piéger, avec l'instruction "trap", l'exception "Accès refusé". Est-ce normal? J'aimerais avoir votreavis et bénéficier des conseils de la communauté. À titre d'essai, je vous transmets deux scripts A et B, l'un avec le parcours d'un répertoire qui provoquera l'exception"Accès refusé" (le répertoire \Users\nom_d_usager convient bien pour tomber sur cette exception, notamment avec les sous-répertoires'C:\Users\usager\AppData\Local\Application Data' ou 'C:\Users\usager\AppData\Local\Temporary Internet Files'), l'autre avec uneboucle de divisions par une variable qui passe par zéro et qui provoquera l'exception classique de diviseur nul. Bien sûr laséquence de trap est identique dans les deux cas. Avec le piège de l'exception "Accès refusé", mon script A ne rentre jamais dans la séquence de trap. Avec le piège del'exception de diviseur nul, mon script B rentre bien dans la séquence de trap. Quelqu'un pourrait-il m'apporter un éclairage pertinent?
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- ageofempiresz
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 44
- Remerciements reçus 1
il y a 5 mois 2 semaines - il y a 5 mois 2 semaines #33133
par ageofempiresz
Réponse de ageofempiresz sur le sujet Récupérer avec "trap" l'exception "Accès refusé"
Bonjour PROUT,
Tes scripts, tu les exécutes en tant qu'utilisateur standard ou admin ?
En fonction de l'utilisateur utilisé, l'un te donne accès à ton répertoire personnel uniquement, l'autre à l'ensemble des répertoires personnels des utilisateurs.
Le script Test_trap_B.ps1, le trap fonctionne sur l'erreur d'une division par 0 quand l'indice est égal 0, il essaye de le diviser et là le trap intervient.
Dans ton script Test_trap_A.ps1, j'ai l'impression que le trap n'est pas capable de récupérer une erreur d'accès, par contre avec un try-catch, cela passe sans problème. En essayant d'utiliser la même exception d'erreur du catch avec trap, cela ne fonctionne pas.
C'est un exemple :
Tes scripts, tu les exécutes en tant qu'utilisateur standard ou admin ?
En fonction de l'utilisateur utilisé, l'un te donne accès à ton répertoire personnel uniquement, l'autre à l'ensemble des répertoires personnels des utilisateurs.
Le script Test_trap_B.ps1, le trap fonctionne sur l'erreur d'une division par 0 quand l'indice est égal 0, il essaye de le diviser et là le trap intervient.
Dans ton script Test_trap_A.ps1, j'ai l'impression que le trap n'est pas capable de récupérer une erreur d'accès, par contre avec un try-catch, cela passe sans problème. En essayant d'utiliser la même exception d'erreur du catch avec trap, cela ne fonctionne pas.
C'est un exemple :
Try {
$folders = Get-ChildItem $Dossier -Recurse -Force -ErrorAction Stop
}
Catch [System.UnauthorizedAccessException]
{ "Access Denied" }
Dernière édition: il y a 5 mois 2 semaines par ageofempiresz.
Connexion ou Créer un compte pour participer à la conversation.
- PROUT
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 5 mois 2 semaines #33138
par PROUT
Réponse de PROUT sur le sujet Récupérer avec "trap" l'exception "Accès refusé"
Je viens d'essayer un script similaire nommé "Test_Try_Catch_00.ps1" (parcours d'un répertoire
"C:\Users\usager" qui provoquera l'exception "Accès refusé") mais qui utilise, cette fois, le couple "Try-Catch".
Je n'arrive toujours pas à piéger cette exception "Accès refusé". J'ai essayé Catch avec le cas
général et avec le cas spécifique "System.UnauthorizedAccessException". Rien n'y fait. Cela ne change rien.
Mon script ne rentre jamais dans le bloc "Catch {}". Aurais-je oublié un élément?
il va de soi que je travaille sous PowerShell ISE avec les droits d'administrateur..
"C:\Users\usager" qui provoquera l'exception "Accès refusé") mais qui utilise, cette fois, le couple "Try-Catch".
Je n'arrive toujours pas à piéger cette exception "Accès refusé". J'ai essayé Catch avec le cas
général et avec le cas spécifique "System.UnauthorizedAccessException". Rien n'y fait. Cela ne change rien.
Mon script ne rentre jamais dans le bloc "Catch {}". Aurais-je oublié un élément?
il va de soi que je travaille sous PowerShell ISE avec les droits d'administrateur..
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- ageofempiresz
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 44
- Remerciements reçus 1
il y a 5 mois 2 semaines #33139
par ageofempiresz
Réponse de ageofempiresz sur le sujet Récupérer avec "trap" l'exception "Accès refusé"
Je l'ai testé avec un utilisateur standard au niveau de "C:\Users\usager" et là cela fonctionne pour lui-même.
Quand tu es admin avec Powershell ISE ou en console, tu as les droits d'accès à tous les répertoires personnels des utilisateurs, cela veut dire que le catch ne s'applique pas dessus.
Quand tu es admin avec Powershell ISE ou en console, tu as les droits d'accès à tous les répertoires personnels des utilisateurs, cela veut dire que le catch ne s'applique pas dessus.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.066 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Récupérer avec "trap" l'exception "Accès refusé"