Question Sortir l'ordinateur de veille

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

merci à vous, les 2 approches ont fonctionné

Bonne nouvelle :-)
gabier écrit:

Je pense que je vais essayer ce soir en vraie grandeur cette dernière approche, plutôt plus simple puisqu'il n'y a pas besoin de transformer le script en module.

Le module à mon avis offre plus de possibilité d'évolution.Un autre intérêt est que le chemin n'est pas codé en dur dans la tâche, on s'appuie sur $env:PSModulePath.
gabier écrit:

Donc soit le ps2exe n'a pas produit un \"module\" correct,

Dans ton contexte il lui manque qq chose qui reste à trouver...

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 1 mois #24997 par Laurent Dardenne
Au fait ma remarque sur la 'pompe de message' était fausse, elle concerne uniquement l'usage de l'API win32 SendMessage().

Tutoriels PowerShell

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

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

]
Le module à mon avis offre plus de possibilité d'évolution.Un autre intérêt est que le chemin n'est pas codé en dur dans la tâche, on s'appuie sur $env:PSModulePath.

J'ai fait plusieurs essais, je n'ai pas réussi à utiliser la variable $env:PSModulePath
Ca n'a marché qu'avec full path en dur dans la tâche.
Pourtant voici la variable $env
[code:1]PS C:\WINDOWS\system32> $env:«»PSModulePath
C:\Users\Gabriel\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\sys
tem32\WindowsPowerShell\v1.0\Modules;d:\gabriel\Mes_documents\NAS\Powershell\Modules[/code:1]
Mon chemin complet vers le module est
[code:1]D:\gabriel\Mes_Documents\NAS\Powershell\Modules\CBS_Sess_GG\CBS_Sess_GG.psm1[/code:1]
J'ai lu sur un document Microsoft que le répertoire contenant le module principal doit avoir le même nom.
Je ne sais pas s'il faut mettre ce dernier répertoire dans le path. De toute manière j'ai essayé les 2 cas.
En plus il faut mettre aussi la mise à jour de $env dans le profil sinon mon chemin disparaît avec la session.

:) gabier

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

Plus d'informations
il y a 8 ans 1 mois #24999 par Laurent Dardenne
Il faut placer 'D:\gabriel\Mes_Documents\NAS\Powershell\Modules\' dans la variable [code:1]$env:«»PsModulePath[/code:1] mais de portée machine, pas utilisateur.<br><br>Message édité par: Laurent Dardenne, à: 13/02/18 12:24

Tutoriels PowerShell

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

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

Il faut placer 'D:\gabriel\Mes_Documents\NAS\Powershell\Modules\' dans la variable [code:1]$env:«»PsModulePath[/code:1] mais de portée machine, pas utilisateur.&lt;br&gt;&lt;br&gt;Message édité par: Laurent Dardenne, à: 13/02/18 12:24

Bonjour Laurent
J'ai mis ça dans mon profil
[code:1]$env:«»PSModulePath = $env:«»PSModulePath + \&quot;;D:\gabriel\Mes_Documents\NAS\Powershell\Modules\&quot;
[Environment]::«»SetEnvironmentVariable(\&quot;PSModulePath\&quot;, $CurrentValue , \&quot;Machine\&quot;«»)[/code:1]
Je n'ai pas trouvé la commande pour vérifier les propriétés de la variable d'environnement, notamment sa portée.
Mais le test avec mon script ne marche pas.
Dans le répertoire \&quot;Modules\&quot;, il y a
- le module à exécuter
- un répertoire du même nom
- de nouveau le module à exécuter dans ce répertoire /Modules/CBS_Sess_GG/
Et dans la tâche il y a
[code:1]-noninteractive -nologo -NoProfile -command \&quot;Import-Module CBS_Sess_GG.psm1\&quot;[/code:1]
En attendant d'y voir clair, je l'exécute avec full path et ça marche.

:) gabier

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

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

Il faut placer 'D:\gabriel\Mes_Documents\NAS\Powershell\Modules\' dans la variable [code:1]$env:«»PsModulePath[/code:1] mais de portée machine, pas utilisateur.&lt;br&gt;&lt;br&gt;Message édité par: Laurent Dardenne, à: 13/02/18 12:24

Bonjour Laurent,
C'est bon, j'ai trouvé comment faire marcher correctement la variable d'environnement. Mon oeil a été attiré par le -noprofile de la commande de la tâche planifiée, bêtement recopiée de ton exemple d'export de tâche.
En fait je modifie la variable d'environnement dans le profil que Powershell ouvre au démarrage. Mais si je mets -noprofile dans la commande qui lance Powershell, le profil n'est pas chargé et la variable d’environnement pas mise à jour.
J'ai donc enlevé l'argument -noProfile et refait un essai sans chemin du script, et ça marche ;). Au passage j'ai découvert les 6 sortes de profils et placé le mien au bon endroit, celui avec la propriété AllUsersCurrentHost.


Reste une question.
Le -noProfile est logique. Si dans l'avenir on modifie le profil, c'est dangereux de modifier tous les modules déjà en service par le biais du profil.
Alors il faudrait mettre à jour autrement la variable d'environnement PSModulePath pour qu'elle contienne le chemin de mes modules.
Comment la mettre à jour autrement que par le profil et de manière persistante ?

:) gabier

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

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