Question Redémarrage automatique d'un service en cas darret

Plus d'informations
il y a 15 ans 3 semaines #8978 par Jacques Barathon
Il faut taper :

[code:1]
powershell -file \"c:\le chemin\complet vers\watchservice.ps1\"
[/code:1]

Cette syntaxe est valable pour lancer le script depuis un .cmd ou en tâche planifiée (dans ce cas-là, pas besoin d'utiliser un .cmd).

Si tu utilises PS 1.0, ce n'est pas -file mais -command il me semble.

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

Plus d'informations
il y a 15 ans 3 semaines #8980 par Matthew BETTON
Cela fonctionne aussi sans le -file, mais il est effectivement préférable de le préciser...

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

Plus d'informations
il y a 15 ans 3 semaines #8981 par Jacques Barathon
C'est ma foi vrai. :)

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

Plus d'informations
il y a 15 ans 3 semaines #8996 par nightymen
Perfect ca fonctionne mais bien sur plus on avance et plus ca se complique

j'ai cree une tache qui verifie un service mais maintenant je voudrais arreter un service en journee et le relancer en soiree et cela tous les jours

dois je utiliser la commande start-sleep

est ce que je dois creer un script pour le demarrage et un autre pour le lancement et creer 2 taches automatiques ou bien un seul script qui specifie l'heure de demarrage et de la fin.<br><br>Message édité par: nightymen, à: 23/02/11 13:46

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

Plus d'informations
il y a 15 ans 3 semaines #8997 par Matthew BETTON
Je pense qu'il faut que tu planifies ces 2 actions via le planificateur de tâches =&gt; 2 scripts.... ou 1 seul auquel tu passeras en arguments le nom du service et l'action souhaitée (arrêt / démarrage). Mais de toute façon 2 tâches planifiées.

==============

J'espère être clair. Si ce n'est pas le cas, n'hésite pas à nous relancer. D'autres personnes peuvent répondre : je n'ai pas la science infuse et il existe souvent plusieurs solutions :)<br><br>Message édité par: Matthew BETTON, à: 23/02/11 19:51

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

Plus d'informations
il y a 15 ans 3 semaines #8999 par Arnaud Petitjean
Bonsoir,

Je vous propose une autre solution basée sur la surveillance d'évènements WMI. Cette solution a l'avantage de déléguer au système la surveillance; ainsi ça devrait consommer moins de ressource CPU qu'une boucle infinie.

Voici le code :
[code:1]
$serviceName = 'Audiosrv'
$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;ArretService\&quot; –action $action
[/code:1]

J'ai fait un test sur mon Windows Server 2008 R2 avec le service AudioSrv et ça fonctionne parfaitement bien.
Lorsque j'arrête le service, celui-ci est détecté dans les 3 secondes par WMI et exécute le bloc de code PowerShell présent dans $action.

Exemple :

[code:1]
PS &gt; Stop-Service -name audiosrv
PS &gt; AVERTISSEMENT : Démarrage du service Audiosrv

PS &gt; Get-Service -name audiosrv

Status Name DisplayName
----
Running audiosrv Windows Audio[/code:1]

Ce script est à exécuter au démarrage de ton serveur une fois pour toutes, et tu es tranquille. L'idéal est de le faire démarrer par une tâche planifiée (qui démarre en même temps que le système).

En espèrant que ça fasse avancer ton business... ;-)

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.

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