Question
Sortir l'ordinateur de veille
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Bonne nouvellemerci à vous, les 2 approches ont fonctionné
gabier é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.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.
gabier écrit:
Dans ton contexte il lui manque qq chose qui reste à trouver...Donc soit le ps2exe n'a pas produit un \"module\" correct,
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Gabriel
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 58
- Remerciements reçus 0
J'ai fait plusieurs essais, je n'ai pas réussi à utiliser la variable $env:PSModulePath]
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.
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.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Gabriel
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 58
- Remerciements reçus 0
Bonjour LaurentIl 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
J'ai mis ça dans mon profil
[code:1]$env:«»PSModulePath = $env:«»PSModulePath + \";D:\gabriel\Mes_Documents\NAS\Powershell\Modules\"
[Environment]::«»SetEnvironmentVariable(\"PSModulePath\", $CurrentValue , \"Machine\"«»)[/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 \"Modules\", 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 \"Import-Module CBS_Sess_GG.psm1\"[/code:1]
En attendant d'y voir clair, je l'exécute avec full path et ça marche.
Connexion ou Créer un compte pour participer à la conversation.
- Gabriel
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 58
- Remerciements reçus 0
Bonjour Laurent,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
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
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 ?
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Sortir l'ordinateur de veille