Question [Surveillance] Evénements Windows

Plus d'informations
il y a 16 ans 3 mois #5791 par LAPO
Re bonjour,

je suis encore dans la gestion des évenements.

Cette fois-ci je cherche à surveiller l'arrivé d'un évenement dans le journal.

Je me suis naturellement inspiré du livre (pour ne pas dire copié :whistle: )

[code:1]
$Computer = '@ip'

$query = New-Object System.Management.WQleventquery \"SELECT * FROM __InstanceCreationEvent
WITHIN 30
WHERE Targetinstance ISA 'Service Control Manager'
AND TargetInstance.EventCode = '632'\"

$scope = New-Object System.Management.ManagementScope \"\\$Computer\root\cimv2\"
$watcher = New-Object System.Management.ManagementEventWatcher $scope,$query

$watcher.start()

While($true)
{
$event = $watcher.WaitForNextEvent()

}
[/code:1]

L'erreur est au niveau de \"$watcher.start()\"
Voici l'erreur :
Exception lors de l'appel de « Start » avec « 0 » argument(s) : « Chemin de l’objet non valide  »
Au niveau de C:\Passerelle\ps\watcherevent.ps1 : 19 Caractère : 15
+ $watcher.start <<<< ()
+ CategoryInfo : NonSpécifié : ( : ) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException


Merci pour vos informations.

Cordialement,<br><br>Message édité par: tsunamidream, à: 17/12/09 15:22

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

Plus d'informations
il y a 16 ans 3 mois #5792 par Laurent Dardenne
Le nom de classe est erroné :
[code:1]
$Computer =\&quot;.\&quot;
$query = New-Object System.Management.WQleventquery 'SELECT * FROM __InstanceCreationEvent
WITHIN 30
WHERE Targetinstance ISA \&quot;Win32_NTLogEvent\&quot;
AND TargetInstance.EventCode = \&quot;632\&quot;'
$Path =New-object System.Management.ManagementPath(\&quot;\\$Computer\root\cimv2\&quot;«»)
$Scope = new-object System.Management.ManagementScope($Path)
$watcher = New-Object System.Management.ManagementEventWatcher
$watcher.Query= $query
$watcher.Scope=$scope
$watcher2.PSbase.Scope.Options.EnablePrivileges = $true
[/code:1]
Et il faut autoriser la prise en charge des priviléges.

Tutoriels PowerShell

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

Plus d'informations
il y a 16 ans 3 mois #5803 par LAPO
Réponse de LAPO sur le sujet Re:[Surveillance] Evénements Windows
merci pour ta réponse c'est parfait.

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

Plus d'informations
il y a 16 ans 2 mois #5960 par TimCruz
Bonjour,

J'ai moi aussi l'erreur
[code:1][/code:1]Exception lors de l'appel de « Start » avec « 0 » argument(s) : « Violation de
quota  »
Au niveau de C:\ev.ps1 : 10 Caractère : 15
+ $watcher.Start &lt;&lt;&lt;&lt; ()
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
[/code]

La modification de mon code selon tes conseils n'y ayant rien changé... Quelqu'un peut-il m'expliquer cette erreur afin que je puisse la résoudre s'il vous plait? Merci beaucoup!

\\&quot;Il n\'y a pas de probl&egrave;me, il n\'y a que des solutions\\&quot;

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

Plus d'informations
il y a 16 ans 2 mois #5961 par Laurent Dardenne
Ce n'est pas tout à fait la même erreur.
C'est peut être du à une durée trop courte et à de nombreuses occurences de l'événement surveillé, cf. Wmi et PS :

On informe WMI qu'on se désabonne puis on libère les ressources utilisées (objet COM). Sans
cela on peut provoquer l'erreur WBEM_E_QUOTA_VIOLATION lors de l'appel à Start().
Parfois ce sera l’erreur Acces denied ou Serveur RPC inaccessible. L’arrêt du service WMI, suivi
de son redémarrage réglera le plus souvent le problème.

Libéres-tu correctement l'eventwatcher ?
Il faudrait connaitre ton code et le contexte...

Voir aussi ce post .

Tutoriels PowerShell

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

Plus d'informations
il y a 16 ans 2 mois #5970 par TimCruz
L'erreur était de moi, j'avais mis des guillemets là ou il fallait mettre des quottes...

Par contre, j'ai besoin de vos lumières, encore :

[code:1]$Computer =\&quot;.\&quot;
$query = New-Object System.Management.WQleventquery \&quot;SELECT * FROM __InstanceCreationEvent
WITHIN 3
WHERE TargetInstance ISA 'Win32_NTLogEvent'
AND TargetInstance.EventCode = '540'\&quot;
$Scope = new-object System.Management.ManagementScope(\&quot;\\$Computer\root\cimv2\&quot;«»)
$watcher = New-Object System.Management.ManagementEventWatcher $scope,$query
$watcher.PSbase.Scope.Options.EnablePrivileges = $true


$watcher.start()

$event = $watcher.WaitForNextEvent()

Foreach ($elements in $event)
{
$date = [System.DateTime]::Now
Write-Host \&quot;$date Nouveau Evenement 540\&quot;
}
[/code:1]

Ca fonctionne et me renvoie mon entrée avec l'event ID 540. Mais le script s'arrète lors de l'affichage du premiers éléments. Je voudrais personnellement qu'il continue d'attendre pour me renvoyer les entrées suivantes, comment faire?

\\&quot;Il n\'y a pas de probl&egrave;me, il n\'y a que des solutions\\&quot;

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

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