Question
Problème de trap
- LOPES
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 14 ans 9 mois #9827
par LOPES
Problème de trap a été créé par LOPES
Bonjour,
Je voudrais générer des fichiers de logs sur mes erreurs mais cela ne fonctionne pas.
Voici mon script qui pour l'instant est juste de récupérer une valeur de registre (RegisteredOwner):
$global:LogFile = \"c:\tmp\test.log\"
trap {
WriteLog -msg \"Erreur, Script: $($_.InvocationInfo.ScriptName). Ligne: ($($_.InvocationInfo.ScriptLineNumber)). Error: ($($_.Exception.Message))\" -LogFile $LogFile ; continue
}
function Get-RegistryValue($key, $value) {
(Get-ItemProperty $key $value).$value
}
function WriteLog
{
PARAM($msg,$logfile)
Add-Content -Path $LogFile -Encoding UNICODE -value $msg
write-host $msg
}
Get-RegistryValue \"HKLM:\Software\Microsoft\Windows NT\CurrentVersion\" \"RegisteredOwner\"
Quand je fais exprès de modifier le nom de la clé de registre (par exemple RegisteredOwners avec un s) pour que cela ne fonctionne pas, j'ai bien une erreur qui s'affiche mais le fichier de logs n'est pas créé. Je précise que quand je sors ma commande writelog du trap, elle fonctionne donc c'est vraiment au niveau du trap que j'ai un souci mais je ne trouve pas quoi.
Merci par avance de votre aide
Je voudrais générer des fichiers de logs sur mes erreurs mais cela ne fonctionne pas.
Voici mon script qui pour l'instant est juste de récupérer une valeur de registre (RegisteredOwner):
$global:LogFile = \"c:\tmp\test.log\"
trap {
WriteLog -msg \"Erreur, Script: $($_.InvocationInfo.ScriptName). Ligne: ($($_.InvocationInfo.ScriptLineNumber)). Error: ($($_.Exception.Message))\" -LogFile $LogFile ; continue
}
function Get-RegistryValue($key, $value) {
(Get-ItemProperty $key $value).$value
}
function WriteLog
{
PARAM($msg,$logfile)
Add-Content -Path $LogFile -Encoding UNICODE -value $msg
write-host $msg
}
Get-RegistryValue \"HKLM:\Software\Microsoft\Windows NT\CurrentVersion\" \"RegisteredOwner\"
Quand je fais exprès de modifier le nom de la clé de registre (par exemple RegisteredOwners avec un s) pour que cela ne fonctionne pas, j'ai bien une erreur qui s'affiche mais le fichier de logs n'est pas créé. Je précise que quand je sors ma commande writelog du trap, elle fonctionne donc c'est vraiment au niveau du trap que j'ai un souci mais je ne trouve pas quoi.
Merci par avance de votre aide
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 14 ans 9 mois #9831
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Problème de trap
Je n'ai pas le temps de tester, mais vérifie si tu n'as pas un problème d'erreur non-bloquante. Essaie avec un simple Write-error, certains cmdlet ne renvoient que ce type d'erreur, alors que le trap ne gére que des erreurs bloquante. Janel avait proposé une solution il y a qq semaines/mois sur le sujet (recherche autour de ErrorAction et Stop)
Sinon essaie avec :
[code:1]
(Get-ItemProperty $key $value -EA STOP).$value
[/code:1]
Sinon essaie avec :
[code:1]
(Get-ItemProperty $key $value -EA STOP).$value
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- LOPES
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 14 ans 9 mois #9833
par LOPES
Réponse de LOPES sur le sujet Re:Problème de trap
Super,
Ca fonctionne avec un simple ErrorAction stop.
Merci beaucoup
Ca fonctionne avec un simple ErrorAction stop.
Merci beaucoup
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.036 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Problème de trap