Question
Redémarrage automatique d'un service en cas darret
- nightymen
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 15 ans 1 mois #8958
par nightymen
Réponse de nightymen sur le sujet Re:Demarrage automatique d'un service
Merci
J'ai colle ce script dans powershell et je l'ai execute avec comme test le service windows update que j'ai volontairement arreté dans la liste des services et voila ce que j'obtiens>donc je vois bien qu'il verifie le service chaque 5 sec mais en mettant la fenetre service en parallele le service est toujours a l'arret
PS C:\Users\mlaurent\Desktop> C:\Users\mlaurent\Desktop\New Text Document.ps1
Vérification du statut du service Windows update: 18/02/11 11:39:17
Vérification du statut du service Windows update: 18/02/11 11:39:22
Vérification du statut du service Windows update: 18/02/11 11:39:27
J'ai colle ce script dans powershell et je l'ai execute avec comme test le service windows update que j'ai volontairement arreté dans la liste des services et voila ce que j'obtiens>donc je vois bien qu'il verifie le service chaque 5 sec mais en mettant la fenetre service en parallele le service est toujours a l'arret
PS C:\Users\mlaurent\Desktop> C:\Users\mlaurent\Desktop\New Text Document.ps1
Vérification du statut du service Windows update: 18/02/11 11:39:17
Vérification du statut du service Windows update: 18/02/11 11:39:22
Vérification du statut du service Windows update: 18/02/11 11:39:27
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 1 mois #8962
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Demarrage automatique d'un service
Tu es sûr d'avoir correctement passé le nom du service aux différentes commandes ?
Le code fourni par bilbao utilise le Display Name, ce qui peut être confondu avec le nom du service. Je te propose ce script qui reprend le principe de bilbao en s'appuyant sur la propriété Name du service (son petit nom, généralement sans espace) :
[code:1]
# watch-service.ps1
param ([String]$name, [int]$sleep = 5)
while($true)
{
$service = get-service $name
\"{0} : le service {1} est '{2}'\" -f $(Get-Date -Format \"dd/MM/yy HH:mm:«»ss\"«»), $service.DisplayName, $service.Status
if($service.Status -eq \"Stopped\"«») {Start-Service -name $name}
Start-Sleep -Seconds $sleep
}
[/code:1]
J'ai testé sur l'instance SQL Express qui tourne sur mon poste :
[code:1]
PS> watch-service 'mssql$sqlexpress'
18/02/11 13:35:17 : le service SQL Server (SQLEXPRESS) est 'Running'
18/02/11 13:35:22 : le service SQL Server (SQLEXPRESS) est 'Running'
18/02/11 13:35:27 : le service SQL Server (SQLEXPRESS) est 'Stopped'
18/02/11 13:35:33 : le service SQL Server (SQLEXPRESS) est 'Running'
18/02/11 13:35:38 : le service SQL Server (SQLEXPRESS) est 'Running'
[/code:1]
On peut noter à 13h35mn27s un arrêt du service, aussitôt détecté et réparé.
Le code fourni par bilbao utilise le Display Name, ce qui peut être confondu avec le nom du service. Je te propose ce script qui reprend le principe de bilbao en s'appuyant sur la propriété Name du service (son petit nom, généralement sans espace) :
[code:1]
# watch-service.ps1
param ([String]$name, [int]$sleep = 5)
while($true)
{
$service = get-service $name
\"{0} : le service {1} est '{2}'\" -f $(Get-Date -Format \"dd/MM/yy HH:mm:«»ss\"«»), $service.DisplayName, $service.Status
if($service.Status -eq \"Stopped\"«») {Start-Service -name $name}
Start-Sleep -Seconds $sleep
}
[/code:1]
J'ai testé sur l'instance SQL Express qui tourne sur mon poste :
[code:1]
PS> watch-service 'mssql$sqlexpress'
18/02/11 13:35:17 : le service SQL Server (SQLEXPRESS) est 'Running'
18/02/11 13:35:22 : le service SQL Server (SQLEXPRESS) est 'Running'
18/02/11 13:35:27 : le service SQL Server (SQLEXPRESS) est 'Stopped'
18/02/11 13:35:33 : le service SQL Server (SQLEXPRESS) est 'Running'
18/02/11 13:35:38 : le service SQL Server (SQLEXPRESS) est 'Running'
[/code:1]
On peut noter à 13h35mn27s un arrêt du service, aussitôt détecté et réparé.
Connexion ou Créer un compte pour participer à la conversation.
- Arthur
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 226
- Remerciements reçus 0
il y a 15 ans 1 mois #8965
par Arthur
Réponse de Arthur sur le sujet Re:Demarrage automatique d'un service
J'ai volontairement utilisé DisplayName, cela me semblait plus parlant dans mon exemple que TlntSvr. 
@Jojo j'ai proposé cette solution suivant mon intuition, du coup j'ai juste testé le principe sur ma machine Seven.
Je pense qu'il doit y avoir une autre façon de faire sous XP.
@Jojo j'ai proposé cette solution suivant mon intuition, du coup j'ai juste testé le principe sur ma machine Seven.
Je pense qu'il doit y avoir une autre façon de faire sous XP.
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 1 mois #8973
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Demarrage automatique d'un service
@bilbao: ce que tu as proposé marche également sous XP, c'est l'OS que j'ai sur la machine où j'ai appliqué ta méthode pour écrire le petit script watch-service.
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 1 mois #8974
par nightymen
Réponse de nightymen sur le sujet Re:Demarrage automatique d'un service
Merci pour toutes ces infos je l'ai testé et ca fonctionne a merveille mais maintenant j'ai crée un fichier .bat qui pointe vers mon powershell
powershell watchservice.ps1 mais il ne fonctionne pas
powershell watchservice.ps1 mais il ne fonctionne pas
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 1 mois #8976
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Demarrage automatique d'un service
Bonjour,
As tu essayé en précisant les chemins ?
Quelque chose du genre :
[code:1]C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe \"[CheminCompletOuSeTrouveTonScript]\watchservice.ps1\"[/code:1]
As tu également pensé à contrôler le niveau de sécurité pour l'exécution des scripts PowerShell ? (cf. Cmdlets Get-ExecutionPolicy / Set-ExcutionPolicy)
Sinon, quel est le message d'erreur qui s'affiche lorsque tu exécutes ton batch ?
@+
Matthew
As tu essayé en précisant les chemins ?
Quelque chose du genre :
[code:1]C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe \"[CheminCompletOuSeTrouveTonScript]\watchservice.ps1\"[/code:1]
As tu également pensé à contrôler le niveau de sécurité pour l'exécution des scripts PowerShell ? (cf. Cmdlets Get-ExecutionPolicy / Set-ExcutionPolicy)
Sinon, quel est le message d'erreur qui s'affiche lorsque tu exécutes ton batch ?
@+
Matthew
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.068 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Redémarrage automatique d'un service en cas darret