Question
Redémarrage automatique d'un service en cas darret
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 3 semaines #8978
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Demarrage automatique d'un service
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.
[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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 15 ans 3 semaines #8980
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Demarrage automatique d'un service
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.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 3 semaines #8981
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Demarrage automatique d'un service
C'est ma foi vrai.
Connexion ou Créer un compte pour participer à la conversation.
- nightymen
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 15 ans 3 semaines #8996
par nightymen
Réponse de nightymen sur le sujet Re:Demarrage automatique d'un service
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
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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 15 ans 3 semaines #8997
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Demarrage automatique d'un service
Je pense qu'il faut que tu planifies ces 2 actions via le planificateur de tâches => 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
==============
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
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 15 ans 3 semaines #8999
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:Demarrage automatique d'un service
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 = \"Select * From __InstanceOperationEvent
within 3
Where TargetInstance ISA 'Win32_service'
AND TargetInstance.Name='$serviceName'\"
$action =
{
if ( (Get-Service $serviceName).Status -ne 'running' )
{
Write-Warning \"Démarrage du service $serviceName\"
Start-Service $serviceName
}
}
Register-WMIEvent -query $query -sourceIdentifier \"ArretService\" –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 > Stop-Service -name audiosrv
PS > AVERTISSEMENT : Démarrage du service Audiosrv
PS > 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
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 = \"Select * From __InstanceOperationEvent
within 3
Where TargetInstance ISA 'Win32_service'
AND TargetInstance.Name='$serviceName'\"
$action =
{
if ( (Get-Service $serviceName).Status -ne 'running' )
{
Write-Warning \"Démarrage du service $serviceName\"
Start-Service $serviceName
}
}
Register-WMIEvent -query $query -sourceIdentifier \"ArretService\" –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 > Stop-Service -name audiosrv
PS > AVERTISSEMENT : Démarrage du service Audiosrv
PS > 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.113 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Redémarrage automatique d'un service en cas darret