Question script sans console

Plus d'informations
il y a 13 ans 2 mois #13551 par Nicolas
script sans console a été créé par Nicolas
Bonjour à tous,

Je suis face a un problème que je suis sur est tout bête mais impossible de trouver la solution.


J'ai un script complet qui est fini et qui fonctionne a merveille. jusque la tout va bien :p

J'ai register-wmi qui ecoute mes logs et qui applique la suite de mon script lorsqu'il recoit un certain log.

quand je le lance en dotsourcing

[code:1]. .\monscript.ps1[/code:1]

Tout fonctionne a merveille .

Mon problème est là quand je ferme la console plus rien ne va.

j'aimerais que ce script tourne non-stop sur mon serveur sans que je sois obliger de laisse ouvert une fenetre powershell.

J'ai déja esseye lance mon script en tant que service en suivant ce tuto

netnegotiations.com/gwblog/?p=108

tout se lance bien je n'ai pas d'erreur mais mon script ne tourne pas :p

Merci d'avance pour vos réponses

bàv

Nico.

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

Plus d'informations
il y a 13 ans 2 mois #13559 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:script sans console
Zarko écrit:

j'aimerais que ce script tourne non-stop sur mon serveur sans que je sois obliger de laisse ouvert une fenetre powershell.

Le prérequis à l'exécution d'un script PS1 est l'accès à une session Powershell (un runspace).
Tu ne peux donc plus avoir d'oeufs si tu tues la poule ;)

Regarde (cf. mon tuto sur WMI) si un gestionnaire d'event permanent peut suffire.

J'avais comme idée de projet de créer un service Windows générique pour exécuter un script PS et autorisant + instances.

Un jour...

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 2 mois #13574 par Nicolas
Réponse de Nicolas sur le sujet Re:script sans console
La solution sur un client d'evenement me parait parfait cependant j'ai un peu de mal a la mettre en place le tuto est assez ardu je dois dire :p


voila l erreur que j'obtiens

[code:1]Exception calling \"Put\" with \"0\" argument(s): \"Illegal null value \"
At line:32 char:26
+ $Filtre_EventConsumer.put <<<< ()
+ CategoryInfo : NotSpecified: (:«») [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException[/code:1]


et mon code

[code:1]$ScriptFile=\"C:\Users\Administrator\Desktop\Script Firewall\FirewallV2.ps1\"
$Cmdln=\"powershell.exe -command $ScriptFile %TargetInstance.Handle%\"
$Path=\"C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe\"
$ConsumerClass = [wmiclass]\"\root\subscription:CommandLineEventConsumer\"
$EventConsumer = $ConsumerClass.CreateInstance()
$EventConsumer.Name = \"PowerShell\"
$EventConsumer.CommandLineTemplate =$Cmdln
$EventConsumer.ExecutablePath=$path
$EventConsumer.ForceOffFeedback=$False
$EventConsumer.ForceOnFeedback=$True
$EventConsumer.RunInteractively=$True
$EventConsumer.ShowWindowCommand=1
$EventConsumer.UseDefaultErrorMode=$True


$FiltreClass = [wmiclass]\"\root\subscription:__EventFilter\"
$Filtre = $FiltreClass.CreateInstance()
$Filtre.Name = \"CreationProcess\"
$Filtre.Querylanguage = \"WQL\"
$Filtre.Query = \"SELECT * FROM __instancecreationevent
WITHIN 3
WHERE targetinstance ISA 'Win32_NTLogEvent'
AND targetinstance.logfile='Security'
AND targetinstance.Eventcode='4625'\"
$Filtre.EventNamespace = \"root\cimv2\"
$ResultFiltre=$Filtre.Put()

$AssociationClass=[wmiclass]\"\root\subscription:__FilterToConsumerBinding\"
$Filtre_EventConsumer = $AssociationClass.createinstance()
$Filtre_EventConsumer.Consumer = $ResultEventConsumer.Path
$Filtre_EventConsumer.Filter = $ResultFiltre.Path
$Filtre_EventConsumer.put()[/code:1]
J'ai bien vu qu'on en parle dans le script mais je comprend pas la solution qui est donné dans ton tuto sorry :s

merci d'avance

Message édité par: Zarko, à: 9/01/13 15:09<br><br>Message édité par: Zarko, à: 9/01/13 15:21

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

Plus d'informations
il y a 13 ans 2 mois #13580 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:script sans console
Zarko écrit:

cependant j'ai un peu de mal a la mettre en place le tuto est assez ardu je dois dire

A mon avis, ce n'est pas le tuto c'est plus l'implémentation 'verbeuse'. Il existe un projet cdoeplex sur les gestio nde event WMI, regarde si cela simplifiera ton code.
Zarko écrit:

mais je comprend pas la solution qui est donné dans ton tuto

Je ne l'ai pas sous les yeux, de tête, exécute 2 fois l'appel à Put ?

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 2 mois #13581 par Nicolas
Réponse de Nicolas sur le sujet Re:script sans console
J'ai édité mon message avant avec mon code que j'ai tiré de ton tuto je sais pas si tu avais vu :p

Effectivement je suis occupé justement de teste ce script mais je dois faire des test parce que j ai pas l impression que ca fonctionne avec ma requete WQL

Message édité par: Zarko, à: 9/01/13 15:28

Même ave ce script ca ne foncitonne pas

[code:1]$filter = new-wmieventfilter -name \&quot;TEST1\&quot; -query \&quot;SELECT * FROM __instancecreationevent
WITHIN 3
WHERE targetinstance ISA 'Win32_NTLogEvent'
AND targetinstance.logfile='Security'
AND targetinstance.Eventcode='4625'\&quot;

$action= Write-Host \&quot;reussi\&quot;

$consumer = new-wmieventconsumer -name \&quot;testc\&quot; -consumertype script -scriptexte {$action}

new-wmifiltertoconsumerbinding -filter $filter -consumer $consumer[/code:1]<br><br>Message édité par: Zarko, à: 9/01/13 15:44

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

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