Question
Mail: Le processus ne peut pas accéder au ...
- Jeel
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 58
- Remerciements reçus 0
il y a 16 ans 2 mois #1491
par Jeel
Mail: Le processus ne peut pas accéder au ... a été créé par Jeel
Boujour,
Lié à l'envoi d'un mail:
Point 1: Je rempli dynamiquement un fichier qui est transmis par mail juste après l'ajout de chaque ligne. Seulement, après le 1er envoi, le process ne libère pas le fichier et à la prochaine écriture par le même script, je reçois l'erreur que le fichier est utilisé par un autre process ... Que faire?
Point 2: J'ai essayé de faire un Get-content de ce fichier dans le body du mail, mais j'ai un problème de format: l'original est composé de lignes bien distinctes, le body généré est composé de ligne collé sans retour à la ligne. Que faire pour avoir le bon format?
Merci à tous
Jeel
Lié à l'envoi d'un mail:
Point 1: Je rempli dynamiquement un fichier qui est transmis par mail juste après l'ajout de chaque ligne. Seulement, après le 1er envoi, le process ne libère pas le fichier et à la prochaine écriture par le même script, je reçois l'erreur que le fichier est utilisé par un autre process ... Que faire?
Point 2: J'ai essayé de faire un Get-content de ce fichier dans le body du mail, mais j'ai un problème de format: l'original est composé de lignes bien distinctes, le body généré est composé de ligne collé sans retour à la ligne. Que faire pour avoir le bon format?
Merci à tous
Jeel
Connexion ou Créer un compte pour participer à la conversation.
- sonic
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 16 ans 2 mois #1493
par sonic
Réponse de sonic sur le sujet Re:Mail: Le processus ne peut pas accéder au ...
J'ai exactement le meme problème.Je vais donc attendre avec espoir de lire la solution . Je ne vois plus trop quoi faire d'autre !!!
A+
A+
Connexion ou Créer un compte pour participer à la conversation.
- Lemaire Patrice
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 40
- Remerciements reçus 0
il y a 16 ans 2 mois #1494
par Lemaire Patrice
Réponse de Lemaire Patrice sur le sujet Re:Mail: Le processus ne peut pas accéder au ...
jeelou2000 écrit:
Voir meme quelques lignes de code seraient les bienvenues.
Histoire de savoir de quoi on parle ...
Je dirais commencer par donner plus d'informations.... Que faire?
Voir meme quelques lignes de code seraient les bienvenues.
Histoire de savoir de quoi on parle ...
Connexion ou Créer un compte pour participer à la conversation.
- Jeel
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 58
- Remerciements reçus 0
il y a 16 ans 2 mois #1497
par Jeel
Réponse de Jeel sur le sujet Re:Mail: Le processus ne peut pas accéder au ...
C'est simple, je surveille un service critique qui ne doit pas s'arrêté, sinon je le redémarre automatiquement.
A chaque re démarrage, j'envoie une ligne dans un fichier que j'envoie par mail.
[code:1]while ($Boucle_1=1)
{
Get-Service $v_service | where {$_.WaitForStatus(\"Stopped\"«»)}
$date_stop = date
$s=get-service $v_service
start-service $v_service
$date_start = date
Write \"$v_compteur : Service stopped on $v_host at $date_stop and be restart at $date_start\" | out-file -filepath $v_logfile
$s=get-service $v_service
#Send MAIL
$Message = New-Object System.Net.Mail.MailMessage
$Subject = \"Tracking of stopped services\"+\":\"+\" $v_service\" + [System.DateTime]::Now
$Body = Get-content $v_logfile
$Attachment = New-Object System.Net.Mail.Attachment($v_logfile)
$Message.To.Add($To)
$Message.Set_From($From)
$Message.Set_Subject($Subject)
$Message.Set_Body($Body)
$Message.Attachments.Add($Attachment)
$SmtpClient = New-Object System.Net.Mail.SmtpClient
$SmtpClient.Host = $SmtpServer
$SmtpClient.Send($Message)
}[/code:1]
Voilà: l'aspect du body pas terrible et l'attachement n'est plus accessible pour écriture après l'envoi du 1er mail.
Merci et BAT
Jeel
A chaque re démarrage, j'envoie une ligne dans un fichier que j'envoie par mail.
[code:1]while ($Boucle_1=1)
{
Get-Service $v_service | where {$_.WaitForStatus(\"Stopped\"«»)}
$date_stop = date
$s=get-service $v_service
start-service $v_service
$date_start = date
Write \"$v_compteur : Service stopped on $v_host at $date_stop and be restart at $date_start\" | out-file -filepath $v_logfile
$s=get-service $v_service
#Send MAIL
$Message = New-Object System.Net.Mail.MailMessage
$Subject = \"Tracking of stopped services\"+\":\"+\" $v_service\" + [System.DateTime]::Now
$Body = Get-content $v_logfile
$Attachment = New-Object System.Net.Mail.Attachment($v_logfile)
$Message.To.Add($To)
$Message.Set_From($From)
$Message.Set_Subject($Subject)
$Message.Set_Body($Body)
$Message.Attachments.Add($Attachment)
$SmtpClient = New-Object System.Net.Mail.SmtpClient
$SmtpClient.Host = $SmtpServer
$SmtpClient.Send($Message)
}[/code:1]
Voilà: l'aspect du body pas terrible et l'attachement n'est plus accessible pour écriture après l'envoi du 1er mail.
Merci et BAT
Jeel
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 16 ans 2 mois #1500
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:Mail: Le processus ne peut pas accéder au ...
Bonsoir Jeelou,
J'ai tout d'abord quelques petites remarques afin d'améliorer ton script :
- Il serait plus propre de changer ton code
[code:1]
Get-Service $v_service | where {$_.WaitForStatus(\"Stopped\"«»)}[/code:1]
en
[code:1]
$svc = Get-Service $v_service
$svc.WaitForStatus(\"Stopped\"«»)
ou encore
$(get-service $srv1).WaitForStatus(\"Stopped\"«»)
[/code:1]
- Si j'étais toi, je ferais un test après la commande de redémarrage du service, car tu supposes qu'il redémarre correctement.
- Ta chaine peut s'écrire aussi ainsi :
[code:1]
$subject = \"Tracking of stopped services: $v_service $([System.DateTime]::Now)\"[/code:1]
- A quoi dans le bon mettre comme corps de message la même chose que dans la pièce jointe ?
- Tu devrais éviter d'utiliser l'alias Write au lieu de Write-Output, et ce pour éviter toute confusion avec Write-Host (qui ne fonctionne pas dans ce contexte)
Sinon pour ton problème de fichier qui reste ouvert et qui ne peut pas être écrasé, je t'avoue que je ne comprends pas
A tout hasard essaye d'utiliser Set-Content au lieu de Out-File.
Arnaud
J'ai tout d'abord quelques petites remarques afin d'améliorer ton script :
- Il serait plus propre de changer ton code
[code:1]
Get-Service $v_service | where {$_.WaitForStatus(\"Stopped\"«»)}[/code:1]
en
[code:1]
$svc = Get-Service $v_service
$svc.WaitForStatus(\"Stopped\"«»)
ou encore
$(get-service $srv1).WaitForStatus(\"Stopped\"«»)
[/code:1]
- Si j'étais toi, je ferais un test après la commande de redémarrage du service, car tu supposes qu'il redémarre correctement.
- Ta chaine peut s'écrire aussi ainsi :
[code:1]
$subject = \"Tracking of stopped services: $v_service $([System.DateTime]::Now)\"[/code:1]
- A quoi dans le bon mettre comme corps de message la même chose que dans la pièce jointe ?
- Tu devrais éviter d'utiliser l'alias Write au lieu de Write-Output, et ce pour éviter toute confusion avec Write-Host (qui ne fonctionne pas dans ce contexte)
Sinon pour ton problème de fichier qui reste ouvert et qui ne peut pas être écrasé, je t'avoue que je ne comprends pas
A tout hasard essaye d'utiliser Set-Content au lieu de Out-File.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 16 ans 2 mois #1502
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:Mail: Le processus ne peut pas accéder au ...
A propos du défaut de mise en page du corps de message, cela me fait penser à un problème d'encodage...
J'ai trouvé cette fiche MSDN qui peut être intéressante.
Essaye de t'en inspirer pour forcer le corps de ton mail en unicode UTF8. Dès que j'aurais un peu de temps je regarderais aussi de mon côté.
Arnaud
J'ai trouvé cette fiche MSDN qui peut être intéressante.
Essaye de t'en inspirer pour forcer le corps de ton mail en unicode UTF8. Dès que j'aurais un peu de temps je regarderais aussi de mon côté.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.081 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Mail: Le processus ne peut pas accéder au ...