Question Script ne fonctionne pas en tâche planifiée

Plus d'informations
il y a 3 ans 5 mois - il y a 3 ans 5 mois #30086 par Toper
Bonjour à tous,
j'ai un script PowerShell qui fonctionne très bien lorsqu'il est lancé via ISE mais qui ne fonctionne plus lorsqu'il est lancé par le planificateur de tâches...
Ce script commence par importer le module ActiveDirectory, puis fait différentes vérifications (date d'expiration du mot de passe, comptes bloqués/verrouillés, etc...)
Et il envoi un mail lorsque la date d'expiration est dans x jours.
Sur un même PC ==> lancé manuellement je reçois la notification ==> lancé en tâche planifiée je ne reçois rien.
Je n'ai pas d'erreur dans l'historique du planificateur.

Auriez-vous une idée ?

Je paramètre la tâche avec dans "Programme/script: C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
Et dans les arguments: -noprofile -NoExit -file "chemin_vers_le_script.ps1"

Merci.

Powershell: la vie est belle :)
Dernière édition: il y a 3 ans 5 mois par Toper.

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

Plus d'informations
il y a 3 ans 5 mois #30087 par Laurent Dardenne
Salut,
>>je reçois la notification
je pense que tu dois détailler ce traitement.
Comment tu notifies ?

Tutoriels PowerShell

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

Plus d'informations
il y a 3 ans 5 mois #30088 par Toper
ok je vais essayer de poster le script

Powershell: la vie est belle :)

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

Plus d'informations
il y a 3 ans 5 mois - il y a 3 ans 5 mois #30089 par Toper
#Import AD Module
 Import-Module ActiveDirectory -ErrorAction 
 
 
$TestDate = (get-date).adddays(354).ToLongDateString()

$To = "dets.mail@domain.com
$MailSender = " Ne_Pas_Répondre <noreply@domain.com>"
$Subject = 'Expiration de mot de passe'
$Body1 = 'Bonjourbla blablabla.....

$SMTPServer = 'server.domain'
 
#Find accounts that are enabled and have expiring passwords
$SearchBase = "OU=OU,DC=domain,DC=lan" 

$users = Get-ADUser -SearchBase $SearchBase -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False -and PasswordLastSet -gt 0 } `
 -Properties "SamAccountName", "EmailAddress", "msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "SamAccountName", "EmailAddress", `
 @{Name = "PasswordExpiry"; Expression = {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed").tolongdatestring() }}
 
foreach ($user in $users) {


    if ($user.PasswordExpiry -eq $TestDate) {
         $days = 15
         write-host "Le mot de passe du compte $($user.name) expire dans 15 jours"
         $EmailBody = $Body1,
 
         Send-MailMessage -To $To -From $MailSender -SmtpServer $SMTPServer -Subject $Subject -Body $EmailBody -BodyAsHtml -Encoding UTF8
     }

Powershell: la vie est belle :)
Dernière édition: il y a 3 ans 5 mois par Toper.

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

Plus d'informations
il y a 3 ans 5 mois #30091 par Laurent Dardenne
Essaie en envoyant juste un mail simple dans ta tâche planifiée.

Tutoriels PowerShell

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

Plus d'informations
il y a 3 ans 5 mois - il y a 3 ans 5 mois #30094 par Toper
J'ai essayé d'envoyer un simple mail par la tâche planifiée: NOK.
Par le script lui-même OK.
J'ai essayé comme ceci:
$SMTPServer = 'smtpserver'
$To = "dest@domain.com"
$MailSender = " Ne_Pas_Répondre <noreply@domain.com>"
$Subject = 'Expiration de mot de passe'
$Body1 = 'Bonjour,<br>'
$EmailBody = $Body1
Try {
Send-MailMessage -To $Too -From $MailSender -SmtpServer $SMTPServer -Subject $Subject -Body $EmailBody -BodyAsHtml -Encoding UTF8
} catch {
Write-Output "An exeption is occured : $($Error.exception.message)" | Out-File C:\Users\<username>\Desktop\error.txt
}
out-file C:\Users\buenadg\Desktop\mail.txt
en faisant exprès de mettre "-To $Too" pour vérifier que l'erreur soit bien catchée et inscrite dans le fichier txt (et ça fonctionne).
donc j'en déduis qu'aucune erreur n'est générée pendant le script....
Mais il ne m'envoi rien...
J'ai aussi mis un out-file en toute fin de ce script qui me créé bien le fichier quand je le lance par tâche planifiée.

Powershell: la vie est belle :)
Dernière édition: il y a 3 ans 5 mois par Toper.

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

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