Question
Editer le ModulePath
- Gabriel
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 58
- Remerciements reçus 0
il y a 4 ans 4 mois #29462
par Gabriel
Editer le ModulePath a été créé par Gabriel
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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 4 ans 4 mois #29464
par Laurent Dardenne
Tutoriels PowerShell
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
ps
Par défaut ton chemin de profil est ajouté dans %PSModulePath%
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
ps
Par défaut ton chemin de profil est ajouté dans %PSModulePath%
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 4 ans 4 mois #29469
par Gabriel
Réponse de Gabriel 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
Ç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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 4 ans 4 mois #29470
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Editer le ModulePath
gabier écrit:
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 , bref on s'adapteSi j'ai bien compris, tu ne modifies pas le Path principal. Tu ajoutes ton path à chaque fois que le module est exécuté.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.071 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Editer le ModulePath