Question Sortir l'ordinateur de veille

Plus d'informations
il y a 8 ans 1 mois #24933 par Laurent Dardenne
gabier écrit:

Oui, le script est démarré systématiquement.

Ok.
Il se peut que ta manière de procéder via un exe termine le programme avec la fin d'exécution de la dernière ligne de code du script. Ce qui ferait que le gestionnaire d’événement se termine également.
Il est fait mention dans qq liens sur le net de l'usage du paramètre -NoExit de Powershell.

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 1 mois #24964 par Gabriel
Réponse de Gabriel sur le sujet Re:Sortir l'ordinateur de veille
Laurent Dardenne écrit:

Ok.
Il se peut que ta manière de procéder via un exe termine le programme avec la fin d'exécution de la dernière ligne de code du script. Ce qui ferait que le gestionnaire d’événement se termine également.
Il est fait mention dans qq liens sur le net de l'usage du paramètre -NoExit de Powershell.

Oui Laurent, cela paraît probable.
Mais pour éviter d'avoir à me battre avec ces problèmes, j'ai préféré me contenter d'une boucle d'attente synchrone, en utilisant simplement start-sleep.
J'ai fait pas mal d'essais et envoyé beaucoup de choses dans un fichier log.
Maintenant le script se déroule normalement, les problèmes qui subsistent viennent d'erreurs de différentes sortes qui plantent le script et empêchent la tache planifiée de démarrer ce script. Après avoir éliminé toutes ces erreurs fatales, je tombe sur une erreur qui semble liée à l'utilisation de ps2exe.
Je ne donne que la partie de code incriminée
[code:1]
Function Control_Serv{
$Check=(get-service |where {$_.name -like \"*Cloud Station Backup*\"}).Status
if($check -eq \"Running\"«»){
$Message=\"Le service CBS est démarré $(get-date)\"
}else{
$Message=\"Le service CBS n'est pas démarré $(get-date)\"
}
$Message >>d:\gabriel\Mes_Documents\NAS\monlog.txt
}#End function Control_Serv
$i=0
$Error.Clear()
$CBServ=get-service |where {$_.name -like \"*Cloud Station Backup*\"}
while(($CBServ.status -ne \"Running\"«») -and ($i -le 5))
{
$CBServ=get-service |where {$_.name -like \"*Cloud Station Backup*\"}
$CBServName=$CBServ.Name
if($cbserv.status -ne \"Running\"«»){start-service -ErrorAction SilentlyContinue -name $CBServName}
start-sleep -s 5
#Contrôle
Control_Serv
$i++
}
if ($error.Count -ne 0){
$Error[0] >>d:\gabriel\Mes_Documents\NAS\monlog.txt
}[/code:1]

Le code vous indique que je fais jusqu'à 5 tentatives de démarrage de ce service, en contrôlant à chaque fois s'il est démarré et en loguant l'erreur s'il y en a.

Lorsque j'exécute le script directement en Ps1 à partir de Powershell ISE. Le service démarre. Je ne comprends pas bien pourquoi j'ai 2 avis, mais le service démarre à la première tentative, puisque je n'ai aucun message négatif.
Le log correspondant est le suivant
[code:1]Le script Start_CB_GG démarre 02/11/2018 19:05:03
...
Le service CBS est démarré 02/11/2018 19:05:13
Le service CBS est démarré 02/11/2018 19:05:18
[/code:1]
Par contre, si je \"compile\" le script avec ps2exe et que j'exécute le résultat (double-clic sur l'exe), le service ne démarre pas, comme me l'indique mon log
[code:1]Le script Start_CB_GG démarre 02/11/2018 19:08:38
...
Le service CBS n'est pas démarré 02/11/2018 19:08:48
Le service CBS n'est pas démarré 02/11/2018 19:08:53
Le service CBS n'est pas démarré 02/11/2018 19:08:58
Le service CBS n'est pas démarré 02/11/2018 19:09:03
Le service CBS n'est pas démarré 02/11/2018 19:09:08
Le service CBS n'est pas démarré 02/11/2018 19:09:13
start-service : Le service «Cloud Station Backup VSS Service x64 (Cloud Station Backup VSS Service x64)» ne peut pas
démarrer en raison de l'erreur suivante: Impossible d'ouvrir le service Cloud Station Backup VSS Service x64 sur
l'ordinateur '.'.
Au caractère Ligne:74 : 38
+ ... \"Running\"«»){start-service -ErrorAction SilentlyContinue -name $CBServ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:«»ServiceController) [Start-Service],
ServiceCommandException
+ FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand

Fin de démarrage des applis : 02/11/2018 19:09:13
[/code:1]
J'ai recommencé les exécutions comparées une deuxième fois, avec le même résultat.Le service n'est pas démarré et de plus, mon exe étant en erreur, le planificateur de tâches ne l'exécute pas.

Ce problème semble lié au \"compilateur\" ps2exe. n'y a-t-il pas d'autre moyen de faire exécuter un script Powershell par le planificateur de tâches Windows ? Il me semble que j'ai vu sur Internet des exemples de tâches planifiées qui exécutent directement Powershell, en utilisant les arguments pour transmettre le script. Quelqu'un connaîtrait-il un tuto à ce sujet ?
Ou tout autre moyen de faire exécuter un script par le planificateur de tâches ?
:) gabier
P.S. Pour les administrateurs du site
1. Si on est trop longtemps à rédiger on est \"délogué\" et comme il faut retourner en page d'accueil pour le login on a toutes chances de tout devoir recommencer. c'est très énervant. merci de faire quelque chose.
2. Je n'ai pas trouvé de lien pour arriver sur ce fil, sauf en cliquant dans le mail qui m'annonce une réponse. le bouton \"Forum\" ne mène pas vraiment au forum. Ou est ce lien qui conduit à la liste des questions réponses pour les débutants ?
merci d'avance.

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

Plus d'informations
il y a 8 ans 1 mois #24968 par Laurent Dardenne
Dans un premier temps, tu devrais utiliser une approche simple (ne pas utiliser PS2EXE).
Que t'apporte la 'compilation' ton script ?

Ensuite utilise un outil qui est maintenu.Là tu demande de l'aide à des personnes qui ne connaisse pas le code.Est-ce la structure de l'exe qui pose pb ou un défaut d'initialisation de priviléges ?

gabier écrit:

1. Si on est trop longtemps à rédiger on est \"délogué\" et comme il faut retourner en page d'accueil pour le login on a toutes chances de tout devoir recommencer.
c'est très énervant. merci de faire quelque chose.

Si tu penses que ta réponse contiendra + lignes et prendra un certains temps à rédiger, il est recommandé de la rédiger dans un éditeur.
Pour le point 2, j'ai un bookmark sur les forums.

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 1 mois #24977 par Gabriel
Réponse de Gabriel sur le sujet Re:Sortir l'ordinateur de veille
Laurent Dardenne écrit:

Dans un premier temps, tu devrais utiliser une approche simple (ne pas utiliser PS2EXE).
Que t'apporte la 'compilation' ton script ?

Ensuite utilise un outil qui est maintenu.Là tu demande de l'aide à des personnes qui ne connaisse pas le code.Est-ce la structure de l'exe qui pose pb ou un défaut d'initialisation de priviléges ?

Bonjour Laurent et merci pour la réponse rapide;
Je n'ai aucun goût pour ps2exe, qui effectivement est un outil sur lequel on n'a aucune garantie. Mais \"une approche simple\" qu'est-ce que c'est ? Le plus simple est d'exécuter le script dans Powershell ISE chaque jour, puisque le but est une sauvegarde quotidienne. Mais le but d'automatiser ça me semble légitime, non ? Alors quels outils utiliser pour automatiser l'exécution de ce script ? Je suppose que je ne suis pas le seul à vouloir faire exécuter un script périodiquement. Alors comment font les autres ?


Laurent Dardenne écrit:

Si tu penses que ta réponse contiendra + lignes et prendra un certains temps à rédiger, il est recommandé de la rédiger dans un éditeur.

D'accord c'est ce que j'essaie de penser à faire, mais on peut ne pas savoir que ce sera long, ou être interrompu, etc ... Si je me suis permis cette remarque, c'est que les autres forums sont plus perfectionnés. Si tu est en train de rédiger et que tu cherches à poster sans être connecté, on te présente une page de connexion, et ensuite tu es redirigé sur la page de rédaction de ta réponse. Ceci dit, si c'est impossible, tant pis, oublie cette remarque dans l'immédiat.
Laurent Dardenne écrit:

Pour le point 2, j'ai un bookmark sur les forums.

Merci je ne l'avais pas vu. Bémol: il ne semble pas être en page d'accueil

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

Plus d'informations
il y a 8 ans 1 mois #24979 par Laurent Dardenne
gabier écrit:

Mais \"une approche simple\" qu'est-ce que c'est ?

Ici c'est d'enlever une couche, utiliser le script/module dans une tache.
Extrait d'un export de tache sous Windows 8:
[code:1]
<Actions Context=\"Author\">
<Exec>
<Command>Powershell.exe</Command>
<Arguments>-noninteractive -nologo -NoProfile -command \"Import-Module MonModule; Fait-QQChose\"</Arguments>
</Exec>
</Actions>
[/code:1]
Ensuite si cette approche fonctionne, tu modifies la tache en utilisant ton .exe.
Ainsi si cette modification ne fonctionne pas ce n'est pas ton script qui est à mettre en cause.
gabier écrit:

Mais le but d'automatiser ça me semble légitime, non ?

Je confirme ;)
gabier écrit:

Alors comment font les autres ?

Tache planifiée ou des outils dédié (genre Orchestrator, etc)

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 1 mois #24984 par Philippe
Réponse de Philippe sur le sujet Re:Sortir l'ordinateur de veille
salut gabier et Laurent

pour les \"temps de rédaction\" trop longtemps à rédiger on est \"délogué\" malheureusement c'est lot de tous le monde :( perso je rédige je message et je copie/colle systématiquement dans le bloc-notes pour pas le perdre si je suis délogué, vu que suis déranger par mon travaille régulièrement ça arrive souvent ! ( je vais m'en plaindre à la direction !! :laugh: )

pour les tache planifiés presque tous les mondes les utilise, c'est devenue méthodes de lancements de scripts ou programmes conseillé par Microsoft !
par contre il est difficile de lancer une tache avec des droits administrateurs ! depuis quelques temps sur Windows 10 et je suppose que pour Windows 8 c'est le même problème

aux vu des messages et comportements, ça ressemble à des problèmes de droits/privilèges
mais je peut me trompé !

pour info, je lance mes scripts avec dans l'onglet action :
programme : PowerShell
arguments : -WindowStyle Hidden -file \"C:\Powershell\ script.ps1\"
malheureusement je les lance tous avec mon login et ma session ouverte ce qui n'est pas ton cas


il faut aussi penser a débloquer les scripts avec set-executionpolicy

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

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