Question [Resolu] [Module OnRemove] Delete Variable

Plus d'informations
il y a 13 ans 9 mois #7351 par Laurent Dardenne
Richard.L écrit:

EDIT : J'ai essayé avec le Remove-Variable. Mais pour pouvoir la supprimer, je dois passer 3 au Scope.
Si j'ai bien compris, cela vient du fait que j'instancie mes variables dans un fichier .ps1 que j'appel dans ScriptsToProcess. Ai je bon ?

De mon coté, préciser -Scope 2 suffit !

Je pense que tu ne devrais pas utiliser cette entrée pour initialiser tes variables, car les scripts exécutés via le manifest le sont dans la portée de l'appelant. Il existe un effet de bord potentiel, par exemple si une variable globale porte le même nom, $ModuleFolder, celle-ci verra son contenu modifié puis elle sera supprimée lors de l'appel à OnRemove.
Ensuite les variables de modules exportées ont leurs propriétés Modulename de renseignés, ce qui n'est pas le cas si on utilise ScriptsToProcess.

Autre problème potentiel, si je charge le module dans un script, mais que je le supprime dans une portée parente de ce script, la variable n'existant plus le traitement OnRemove provoquera une erreur.

Ce qui me laisse perplexe c'est de déclarer une variable, lors du chargement d'un module, dans la portée de l'appelant et de la supprimer lors de son déchargement, alors que son existence est liée à la durée de vie de ce module...
Bon, en même temps je ne connais pas ton contexte, existe-t-il un intérêt à procéder ainsi ?

La pièce jointe test-1fafa8c1c25f1e8fbc94407a558690ae.zip est absente ou indisponible


Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 9 mois #7356 par Richard Lazaro
J'ai besoin de créer des variables d'initialisation pour avoir quelque chose de transportable d'un environnement à un autre.

Après, c'est que des variables facilitant l'appel de mes cmdlets.

Tu penses qu'il vaudrait mieux passer par quoi ?

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

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

Plus d'informations
il y a 13 ans 9 mois #7358 par Laurent Dardenne
Richard Lazaro écrit:

J'ai besoin de créer des variables d'initialisation pour avoir quelque chose de transportable d'un environnement à un autre.

Tu parles de dépendances ?
Richard Lazaro écrit:

Après, c'est que des variables facilitant l'appel de mes cmdlets.

As-tu un exemple ? j'ai du mal à voir l'usage.
Richard Lazaro écrit:

Tu penses qu'il vaudrait mieux passer par quoi ?

Vu ton besoin je te conseille d'utiliser des variables exportées, elles simplifierons la compréhension de l'ensemble.

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 9 mois #7360 par Richard Lazaro
enfait, c'est pour copier des fichier de metadata.

J'ai une infra avec un serveur qui host les metadatas à jour.

Et le but c'est que les autre machines viennent récupérer les metadatas.

Pour cela j'ai deux cmdlet Push-RBMetadata et Pop-RBMetadata avec un Path et une Destination.

Mais le truc, c'est que specifier le Path et la destination à chaque fois, c'est chiant et contraignant. Donc j'ai voulu créer ces variables d'initialisation qui permettront de construire les valeurs par defaut des deux cmdlet.

J'espère avoir été assez claire.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

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

Plus d'informations
il y a 13 ans 9 mois #7365 par Laurent Dardenne
Richard Lazaro écrit:

J'espère avoir été assez claire.

oui, tu recherches le comportement suivant :
[code:1]
rv parametrage

function test($P=$parametrage){
write-host \"p= $p\"
}

Test
$parametrage=\"c:\temp\"

Test
Test c:\Windows
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 9 mois #7366 par Richard Lazaro
hormis que tout cela est centraliser dans un même fichier, facilitant les modifications.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

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

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