Question
Sortir l'ordinateur de veille
- Gabriel
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 58
- Remerciements reçus 0
il y a 8 ans 1 mois #24926
par Gabriel
Réponse de Gabriel sur le sujet Re:Sortir l'ordinateur de veille
Bonjour,
J'ai travaillé pour réaliser ce script selon les suggestions de @crogiez. C'est un peu au-dessus de mes compétences.
[code:1]
######## Démarrer l'application Cloud-Station-Backup
&\"C:\Program Files (x86)\Synology\CloudStationBackup\bin\launcher.exe\"
######## Démarrer le service cloud-Station-backup
(get-wmiobject win32_service |where {$_.name -like \"*Cloud Station Backup*\"}).startservice()
##### Préparer le timer
$timer = New-Object System.timers.timer
$timer.interval=60000
$timer.enabled=$true
$timer.AutoReset= $False
Register-ObjectEvent -InputObject $timer -EventName Elapsed -Action {
######## Tuer les processus cloud-backup
$procid=get-process cloud-backup-ui* |select -expand id
stop-process -id $procid -force
$procid=get-process cloud-backup-daemon* |select -expand id
stop-process -id $procid -force
$procid=get-process cloud-backup-connect* |select -expand id
stop-process -id $procid -force
######## Arrêter le service cloud-Station-backup
(get-wmiobject win32_service |where {$_.name -like \"*Cloud Station Backup*\"}).stopservice()
# Arrêter le timer
$timer.stop()
}
$timer.Start()
[/code:1]
En exécution sur Powershell ISE ce code semble marcher.
Où ça se gâte c'est quand je transforme ce script en exe avec ps2exe et que je le mets dans les tâches planifiées windows. C'est le seul moyen que je connaisse dans windows pour planifier ce script à heure-date fixée.
Mais le mécanisme du timer (événement asynchrone pour le programme exécuté) n'est pas compris par le planificateur de tâches, et les tâches associées ne sont pas exécutées.
Ou bien il me faut un autre système de \"timer\" synchrone avec le programme (que je ne connais pas) ou bien il faut insérer cette tâche planifiée dans windows autrement.
Là je cale. Je pourrais faire une boucle de calcul qui dure une heure, mais ça paraît idiot de faire mouliner l'ordinateur pendant une heure pour rien!
gabier
J'ai travaillé pour réaliser ce script selon les suggestions de @crogiez. C'est un peu au-dessus de mes compétences.
[code:1]
######## Démarrer l'application Cloud-Station-Backup
&\"C:\Program Files (x86)\Synology\CloudStationBackup\bin\launcher.exe\"
######## Démarrer le service cloud-Station-backup
(get-wmiobject win32_service |where {$_.name -like \"*Cloud Station Backup*\"}).startservice()
##### Préparer le timer
$timer = New-Object System.timers.timer
$timer.interval=60000
$timer.enabled=$true
$timer.AutoReset= $False
Register-ObjectEvent -InputObject $timer -EventName Elapsed -Action {
######## Tuer les processus cloud-backup
$procid=get-process cloud-backup-ui* |select -expand id
stop-process -id $procid -force
$procid=get-process cloud-backup-daemon* |select -expand id
stop-process -id $procid -force
$procid=get-process cloud-backup-connect* |select -expand id
stop-process -id $procid -force
######## Arrêter le service cloud-Station-backup
(get-wmiobject win32_service |where {$_.name -like \"*Cloud Station Backup*\"}).stopservice()
# Arrêter le timer
$timer.stop()
}
$timer.Start()
[/code:1]
En exécution sur Powershell ISE ce code semble marcher.
Où ça se gâte c'est quand je transforme ce script en exe avec ps2exe et que je le mets dans les tâches planifiées windows. C'est le seul moyen que je connaisse dans windows pour planifier ce script à heure-date fixée.
Mais le mécanisme du timer (événement asynchrone pour le programme exécuté) n'est pas compris par le planificateur de tâches, et les tâches associées ne sont pas exécutées.
Ou bien il me faut un autre système de \"timer\" synchrone avec le programme (que je ne connais pas) ou bien il faut insérer cette tâche planifiée dans windows autrement.
Là je cale. Je pourrais faire une boucle de calcul qui dure une heure, mais ça paraît idiot de faire mouliner l'ordinateur pendant une heure pour rien!
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 8 ans 1 mois #24928
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Sortir l'ordinateur de veille
gabier écrit:
Le contexte d'exécution dans une tâche planifié ne propose pas de boucle de message.Mais le mécanisme du timer (événement asynchrone pour le programme exécuté) n'est pas compris par le planificateur de tâches, et les tâches associées ne sont pas exécutées.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 8 ans 1 mois #24929
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Sortir l'ordinateur de veille
je supposes que tu as-tu vérifié la configuration de la tâche, par exemple
ceci
.
On trouve de nombreux liens autour du pb de tâche qui ne se déclenchent pas.
Et je ne sais pas si ce pb se présente sur une workstation ou un serveur.
Il faudrait déjà vérifier ce mécanisme avant d'aller plus loin.
On trouve de nombreux liens autour du pb de tâche qui ne se déclenchent pas.
Et je ne sais pas si ce pb se présente sur une workstation ou un serveur.
Il faudrait déjà vérifier ce mécanisme avant d'aller plus loin.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Gabriel
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 58
- Remerciements reçus 0
il y a 8 ans 1 mois #24930
par Gabriel
Réponse de Gabriel sur le sujet Re:Sortir l'ordinateur de veille
Bonjour,
Tous les tests sont faits sur un ordinateur personnel PC sous Windows 10, ce que tu appelles je pense une workstation.
Les paramètres de veille et d'alimentation sont répartis en 2 modes
: MODE NORMAL
Eran éteint après 15mn
Ordinateur en veille après 30 mn
Paramètres avancés
- Autoriser la veille hybride : Oui
- Mettre en veille profonde après: Jamais
- Autoriser les minuteurs de sortie de veille :Activer
MODE \"NON-STOP\"
Eran éteint après 15mn
Ordinateur en veille après: Jamais
Paramètres avancés
- Autoriser la veille hybride : Oui
- Mettre en veille profonde après: Jamais
- Autoriser les minuteurs de sortie de veille :Activer
Les tests ont té faits en mode NON-Stop
Mon intuition pas très savante est que le problème réside plutôt dans la boucle d'attente asynchrone que dans les paramètres de la tâche.
J'espère que tout cela répond à tes questions, je vais chec=cher de mon côté
gabier
Tous les tests sont faits sur un ordinateur personnel PC sous Windows 10, ce que tu appelles je pense une workstation.
Les paramètres de veille et d'alimentation sont répartis en 2 modes
: MODE NORMAL
Eran éteint après 15mn
Ordinateur en veille après 30 mn
Paramètres avancés
- Autoriser la veille hybride : Oui
- Mettre en veille profonde après: Jamais
- Autoriser les minuteurs de sortie de veille :Activer
MODE \"NON-STOP\"
Eran éteint après 15mn
Ordinateur en veille après: Jamais
Paramètres avancés
- Autoriser la veille hybride : Oui
- Mettre en veille profonde après: Jamais
- Autoriser les minuteurs de sortie de veille :Activer
Les tests ont té faits en mode NON-Stop
Mon intuition pas très savante est que le problème réside plutôt dans la boucle d'attente asynchrone que dans les paramètres de la tâche.
J'espère que tout cela répond à tes questions, je vais chec=cher de mon côté
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 8 ans 1 mois #24931
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Sortir l'ordinateur de veille
Selon ceci :
gabier écrit:
gabier écrit:
il te faut déjà savoir, à l'aide de trace par exemple, si le code associé à la tache est toujours démarré, ensuite que le script ne fasse pas ce qu'on lui demande c'est une autre affaireJ'ai remarqué que si je laisse l'ordinateur vivre sa vie, il arrive que les processus et services ne soient pas arrêtés.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Gabriel
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 58
- Remerciements reçus 0
il y a 8 ans 1 mois #24932
par Gabriel
Réponse de Gabriel sur le sujet Re:Sortir l'ordinateur de veille
Bonjour Laurent
Oui bien sûr, j'avais expurgé mon code cité plus haut des traces que j'envoie dans mon log.
Oui, le script est démarré systématiquement. J'ai soupçonné la partie asynchrone parce que la première partie qui démarre des applications, et qui est synchrone est également effectuée.
C'est la deuxième, liée au timer qui ne s'exécute pas.
j'ai donc cherché à faire une boucle d'attente de 1h synchrone. J'ai trouvé une solution qui a l'air de marcher avec stopwatch. Voici ma boucle d'attente. je regarde tous les 5 minutes si l'heure n'a pas été dépassée. Il y a sans doute plus élégant ...
[code:1]
$watch=[System.Diagnostics.Stopwatch]::«»startNew()
$DateStart=$watch.Elapsed.TotalSeconds
$DateFin=$DateStart+3600
Do{
Start-Sleep -s 300
$DateCour=$watch.Elapsed.TotalSeconds
}while($DateCour -le $DateFin)
[/code:1]
J'essaie ce soir en grandeur réelle. Je vous tiens au courant.
Oui bien sûr, j'avais expurgé mon code cité plus haut des traces que j'envoie dans mon log.
Oui, le script est démarré systématiquement. J'ai soupçonné la partie asynchrone parce que la première partie qui démarre des applications, et qui est synchrone est également effectuée.
C'est la deuxième, liée au timer qui ne s'exécute pas.
j'ai donc cherché à faire une boucle d'attente de 1h synchrone. J'ai trouvé une solution qui a l'air de marcher avec stopwatch. Voici ma boucle d'attente. je regarde tous les 5 minutes si l'heure n'a pas été dépassée. Il y a sans doute plus élégant ...
[code:1]
$watch=[System.Diagnostics.Stopwatch]::«»startNew()
$DateStart=$watch.Elapsed.TotalSeconds
$DateFin=$DateStart+3600
Do{
Start-Sleep -s 300
$DateCour=$watch.Elapsed.TotalSeconds
}while($DateCour -le $DateFin)
[/code:1]
J'essaie ce soir en grandeur réelle. Je vous tiens au courant.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.062 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Sortir l'ordinateur de veille