Question Probleme rencontré pour faire tourner un script

Plus d'informations
il y a 6 ans 9 mois #28947 par Enzo
Bonjour à tous, je suis nouveau sur le forum.
J'ai pu faire un peut le tour et j'ai testé certains scripts powershell. Celui avec l'intitulé \"Surveillance d'un service et relancement automatique en cas d'arrêt\" m'a tapé dans l’œil .
J'ai reproduis le script qui y était énoncé en changeant le nom de service.
Mon action s'appelle donc ArretService tout comme dans l'exemple. Quand je fais un get-job, Mon \"ArretService\" parait en status : Non-started

J'ai écris le script dans la console powershell mais je l'ai aussi enregistré en .ps1 dans un dossier

J'ai beau essayer de nombreuses combines.

Start-job -Name ArretService -ScriptBlock {ArretService C:\Users\Enzo\Script}

get-job -id 1 | Start-job -ScriptBlock {ArretService}

à la suite de ces deux commandes il passait en Running mais il me suffisait de faire un get-job juste après pour constater qu'il était un NotStarted.


Quelqu'un aurait une idée de mon problème ?

Merci d'avance

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

Plus d'informations
il y a 6 ans 9 mois #28952 par Laurent Dardenne
Salut,
Enzau écrit:

Quelqu'un aurait une idée de mon problème ?

Sans le code et donc sans test, aucune.

J'ai un doute sur le fait qu'un job passe de l'état Running à 'NotStarted'.
A l'origine 'NotStarted' indique que le job est en attente d'exécution, ce délai d'attente dépend surement de la charge CPU, ce n'est pas tjr instantané (mais très souvent) .

Pour suivre ce qui se passe l'ajout d'événement de changement d'état peut t'aider, consulte le tutoriel sur les Job via le lien dans ma signature.

Enfin qu'est-ce que ArrêtService dans le scriptblock de ce code ?
[code:1]
Start-job -Name ArretService -ScriptBlock {ArretService C:\Users\EnzoScript}[/code:1]
Au sein du code d'un job, on utilise l'objet JOB pour le supprimer par exemple. Je ne comprends pas ce que tu essaies de faire ici :pinch:<br><br>Message édité par: Laurent Dardenne, à: 24/05/19 14:36

Tutoriels PowerShell

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

Plus d'informations
il y a 6 ans 9 mois #28956 par Enzo
Salut,

Merci pour ta réponse.
Le script que j'ai tenté d’exécuter est le suivant :
powershell-scripting.com/index.php?optio...id=384&Itemid=71

Soit --&gt;
[code:1]$serviceName = 'Superfetch'
$query = \&quot;Select * From __InstanceOperationEvent
within 3
Where TargetInstance ISA 'Win32_service'
AND TargetInstance.Name='$serviceName'\&quot;
$action =
{
if ( (Get-Service $serviceName).Status -ne 'running' )
{
Write-Warning \&quot;Démarrage du service $serviceName\&quot;
Start-Service $serviceName
}
}
Register-WMIEvent -query $query -sourceIdentifier \&quot;RebootServic\&quot; –action $action [/code:1]

J'ai éxécuté le script, je te montre la suite sur mon screen --&gt; zupimages.net/viewer.php?id=19/21/pphq.png

Tout ce que j'essaye de faire, c'est de faire tourner ce job en boucle.
Le but de ce script étant de redémarrer un service lorsqu'il s'éteint

Message édité par: Enzau, à: 26/05/19 16:59<br><br>Message édité par: Arnaud, à: 27/05/19 13:36

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

Plus d'informations
il y a 6 ans 9 mois #28960 par Laurent Dardenne
Ok, il s'agit d'un job lié à un événement.

Le code de ce type de job se déclenche (Running) lorsque l'événement associé se déclenche.
Tant qu'aucun événement survient il ne se passe rien.
Il doit donc être déclenché au moins une fois pour changer d'état. Ceci dit le job est 'NotStarted' mais l'écoute de l'event est active.

J'ai testé ce script, il fonctionne sur Windows 10 (1809)
Essai de préciser le nom de service dans le code $Action.
Et pour ton exemple de job 'Failed' il nous faut le détail.
[edit]
Maj version de windows<br><br>Message édité par: Laurent Dardenne, à: 27/05/19 15:27

Tutoriels PowerShell

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

Plus d'informations
il y a 6 ans 9 mois #28961 par Laurent Dardenne
En passant l'arrêt du job se fait via Unregister-Event, ensuite reste à le supprimer.
La fin du texte que tu cites est donc erroné.

Tutoriels PowerShell

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

Plus d'informations
il y a 6 ans 9 mois #28963 par Enzo
Avant tout, merci pour tes réponses et ta réactivité Laurent!

Ensuite, j'ai beau lire tes messages, je ne vois pas où tu veux en venir ..
De plus, quand j'execute le code tel que je te l'ai donné (en changeant le service avec le service tel que \&quot;Superfetch\&quot; . Voilà le message de retour ..

serviceName : Le terme «serviceName» n'est pas reconnu comme nom d'applet de commande,
fonction, fichier de script ou programme exécutable. Vérifiez l'orthographe du nom, ou si
un chemin d'accès existe, vérifiez que le chemin d'accès est correct et réessayez.
Au caractère C:\Users\Enzo\Script\RebootService.ps1:1 : 1
+ serviceName = 'Superfetch'
+ ~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (serviceName:String) [], CommandNotFoundExcep
tion
+ FullyQualifiedErrorId : CommandNotFoundException


Qu'as tu fais pour que le script fonctionne ?

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

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