Editer le ModulePath

Plus d'informations
il y a 6 mois 1 semaine #29462 par gabier
Editer le ModulePath a été créé par gabier
Bonjour à tous,
J'ai fait un script d'impression d'images qui est lancé par mon scanner. Comme l'application du scanner n'accepte de lancer que des .exe, .js ou vbs, je me suis dit que je lancerais le script sous forme de module par Powershell lui même. Je fais donc lancer Powershell comme suit (j'avais déjà employé ce moyen avec le planificateur de tâches Windows)
[code:1]powershell.exe -noninteractive -nologo -command \"Import-Module Photocop1.psm1\"
[/code:1]
Les ennuis on commencé quand j'ai voulu mettre mon module dans un nouveau dossier \"Powershell\Modules\Photocop1\" et que j'ai voulu éditer le PSModulePath en conséquence car j'avais oublié comment faire. J'ai donc cherché et commencé par
[code:1]$CurrentValue = [Environment]::GetEnvironmentVariable(\"PSModulePath\"«»)
$CurrentValue +=';D:\gabriel\Mes_Documents\Powershell\Modules'
[Environment]:: SetEnvironmentVariable(\"PSModulePath\", $CurrentValue[/code:1]
Cela n'a pas marché, powershell ne trouvait pas le module.
J'ai cherché, et trouvé qu'il y avait un path pour la session et un Path persistant. Apparemment le Path persistant est le Path \"Machine\". J'ai donc modifié le script[code:1]$CurrentValue = [Environment]::GetEnvironmentVariable(\"PSModulePath\",\"Machine\"«»)
{$CurrentValue +=';D:\gabriel\Mes_Documents\Powershell\Modules'}
[Environment]:: SetEnvironmentVariable(\"PSModulePath\", $CurrentValue ,\"Machine\"«»)[/code:1]
Mais là il n'y avait plus de path du tout, Powershell ne démarrait plus, et j'ai du redémarrer mon ordinateur pour le recréer
De fait la recherche du path machine ne ramène rien. D'ailleurs il semble que le path soit dans les registres et à l'emplacement indiqué il n'y a pas de variable de registre PSModulePath.

Bref je suis perdu et avant de toucher à un Path qui peut impliquer les registres je voudrais être sûr de ce que je fais.
Quelqu'un peut-il me donner une recette sûre pour éditer de manière persistante le PSModulePath ?

:) Gabier

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

Plus d'informations
il y a 6 mois 1 semaine #29464 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Editer le ModulePath
Salut,
je procède le plus souvent en modifiant le path via la GUI ou je rends le script autonome via :
[code:1]
#Script Call.ps1
$PSModulePath +=';D:\gabriel\Mes_Documents\Powershell\Modules'
Import-Module Photocop1

#la suite
Invoke-MonTraitement
[/code:1]
Puis
[code:1]
#commande à vérifier, mais le principe est là
powershell.exe -noninteractive -nologo -noprofile -script \"fullpath\Call.ps1\"[/code:1]
Ce qui, il y a qq années, m'avait évité chez un grand compte de faire une étude et des réunions pour changer une variable système :woohoo:

ps
Par défaut ton chemin de profil est ajouté dans %PSModulePath%

Tutoriels PowerShell

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

Plus d'informations
il y a 6 mois 1 semaine #29469 par gabier
Réponse de gabier sur le sujet Re:Editer le ModulePath
Bonjour Laurent,
Ça marche. Si j'ai bien compris, tu ne modifies pas le Path principal. Tu ajoutes ton path à chaque fois que le module est exécuté. Pourquoi pas ?
Merci
:) gabier

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

Plus d'informations
il y a 6 mois 1 semaine #29470 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Editer le ModulePath
gabier écrit:

Si j'ai bien compris, tu ne modifies pas le Path principal. Tu ajoutes ton path à chaque fois que le module est exécuté.

Selon les contextes on à pas tjr les droits ou la possibilité de le faire, pas admin sur les serveurs, les personnes en place trainent des pieds, la sécu qui a ses raisons et nous les nôtres :whistle: , bref on s'adapte :)

Tutoriels PowerShell

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

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