Question [Resolu] [Module OnRemove] Delete Variable
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
De mon coté, préciser -Scope 2 suffit !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 ?
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
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 530
- Remerciements reçus 0
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Tu parles de dépendances ?J'ai besoin de créer des variables d'initialisation pour avoir quelque chose de transportable d'un environnement à un autre.
Richard Lazaro écrit:
As-tu un exemple ? j'ai du mal à voir l'usage.Après, c'est que des variables facilitant l'appel de mes cmdlets.
Richard Lazaro écrit:
Vu ton besoin je te conseille d'utiliser des variables exportées, elles simplifierons la compréhension de l'ensemble.Tu penses qu'il vaudrait mieux passer par quoi ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 530
- Remerciements reçus 0
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
oui, tu recherches le comportement suivant :J'espère avoir été assez claire.
[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.
- Richard Lazaro
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 530
- Remerciements reçus 0
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.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- [Resolu] [Module OnRemove] Delete Variable