Question Avoir un CSV contenant les erreurs d'exec script

Plus d'informations
il y a 14 ans 11 mois #9355 par AustinPower
Bonjour
Voici mon script ..
.\primarysmtpAddresses.ps1 [script perso]
Import-Csv \".email_user.csv\" | foreach {
Set-Mailbox $_.login -PrimarySmtpAddress $_.emailadresse -EmailAddressPolicyEnabled $false
}
Import-Csv \".email_user.csv\" | foreach {
get-mailbox $_.login | fl PrimarySmtpAddress,Emailaddresses > \"c:\resultatEmailaddressestest $_.login.csv\"
}

lors de l'execution de mon script .\primarysmtpAddresses.ps1 , j'obtiens des erreurs (si le login, le mail ou meme l'extension est fausse) en rouge sur powershell
j'aimerai pourvoir avoir un fichier csv ou txt contenant c erreur.
j'ai essayé .\primarysmtpAddresses.ps1 | export-csv c:\reslutat.csv ou .\primarysmtpAddresses.ps1 > c:\resultat.csv ............ Le fichier est présent mais vide

merci de votre aide

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

Plus d'informations
il y a 14 ans 11 mois #9359 par Arthur
Désolé du temps de réponse j'avais espéré que quelqu'un avec plus de temps (pour plus d'explications) réponde avant moi.

Tu as plusieurs façons:

Rediriger l'erreur directement dans un fichier

[code:1]dir nimportequoi 2>>\"errors.txt\"[/code:1]

Utiliser le paramètre ErrorVariable pour rediriger l'erreur dans une variable

[code:1]dir nimportequoi -ErrorVariable errors
$errors # Affiche l'erreur[/code:1]

Utiliser la variable $Error: ( voir google pour plus d'info sur $Error)

[code:1]$Error.clear()
dir nimportequoi
$Error[0]
#Affiche la dernière erreur[/code:1]

Utiliser le block try/catch:

[code:1]try { get-childitem nimportequoi -ErrorAction Stop } catch { $errors = $_.Exception }
$errors # Affiche l'erreur[/code:1]

Il y en encore d'autres possibilités

Donc tu peux soit envoyer l'erreur directement dans un fichier soit récupérer une variable, la convertir en Csv, et et créer un fichier .csv avec<br><br>Message édité par: bilbao, à: 7/04/11 17:52

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

Plus d'informations
il y a 14 ans 11 mois #9362 par AustinPower
merci pour ton aide

[code:1]
Import-Csv \&quot;.\email_user.csv\&quot; | foreach {
Set-Mailbox $_.login -PrimarySmtpAddress $_.emailadresse -EmailAddressPolicyEnabled $false
}
if ($error -ne $null) {$error &gt;&gt; c:\ResultatEmailaddresses\error.log}
Import-Csv \&quot;.\email_user.csv\&quot; | foreach {
get-mailbox $_.login | fl PrimarySmtpAddress,Emailaddresses &gt; \&quot;c:\resultatEmailaddresses\test $_.login.csv\&quot;
}
$error.clear()
[/code:1]

cela fonctionne bien....
tu pourrais donner un exemple avec ton ajout de code afin que les lecteurs aient plusieurs solutions?

Merci encore<br><br>Message édité par: Lord_Austin_Power, à: 8/04/11 10:35

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

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