Question Boucle conditionnelle (négation)

Plus d'informations
il y a 6 ans 10 mois #28906 par lefevre
Bonjour,

J'utilise ce script afin de faire du monitoring pour WSUS
gallery.technet.microsoft.com/scriptcent...Updates-and-684c355c

Le problème est que je reçois un mail même s'il n'y a pas de mises à jour disponibles.

Je souhaiterais si possible faire en sorte de ne pas envoyer de mail si la variable $totalUpdates est équivalente à 0.

J'ai essayé ceci
[code:1]if ($totalUpdates -eq 0) {
\"c'est ici que je bloque, comment exprimer en Powershell ne pas envoyer de mail en respectant la boucle de la ligne 164 ?\"
}[/code:1]

A quel moment dois-je déclarer cette condition ?
Pouvez-vous m'aider s'il vous plait ?

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

Plus d'informations
il y a 6 ans 10 mois #28908 par Arnaud Petitjean
Bonjour,

L'opérateur -eq est l'opérateur d'égalité.

Pour tester le contraire (cad la différence), il faut utiliser l'opérateur -ne (non equal).

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.

Plus d'informations
il y a 6 ans 10 mois #28909 par lefevre
Merci pour le retour.

J'ai essayé ceci, mais je reçois toujours le mail alors que le nombre de MAJs est équivalent à 0.

[code:1]if ($totalUpdates -ne 0) {
$sendMail = $smtp.Send($msg)
$sendMail = $false
}[/code:1]

Qu'est-ce que je n'ai pas compris ?

Message édité par: llefevre, à: 13/05/19 15:22<br><br>Message édité par: llefevre, à: 13/05/19 15:24

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

Plus d'informations
il y a 6 ans 10 mois #28910 par Arnaud Petitjean
Il faudrait que tu nous montres le contenu de ta variable $totalUpdates...

Sinon, essaie ceci (avec .count):

[code:1]if ($totalUpdates.count -ne 0) {

$sendMail = $smtp.Send($msg)

$sendMail = $false

}
[/code:1]

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.

Plus d'informations
il y a 6 ans 10 mois #28911 par lefevre
Voici le contenu des variables $totalUpdates et $SearchResult

[code:1]$totalUpdates = $($SearchResult.updates.count)
$SearchResult = $UpdateSearcher.Search(\&quot;IsAssigned=1 and IsHidden=0 and IsInstalled=0\&quot;«»)[/code:1]
J'ai essayé avec \&quot;$totalUpdates.count\&quot;, cela ne fonctionne pas.

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

Plus d'informations
il y a 6 ans 10 mois #28913 par Philippe
salut

j'ai fait des tests $totalUpdates contient bien un entier (int32)
donc un if ($totalUpdates) suffit pour que ça matche
pour plus de tranquillité tu peux garder if ($totalUpdates -ne 0)

ton probleme est peut etre ailleurs !! :huh:

une chose : ça marche avec $totalUpdates seulement si tu a un seul ordi a surveilllé sinon c'est l'etat du dernier ordi qui décide !!
il te faut créé une variable supplementaire qui cumul les erreur pour tous les serveurs !<br><br>Message édité par: 6ratgus, à: 14/05/19 09:33

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

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