Question [Avis]Article sur PoshV3
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 13 ans 2 semaines #10293
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:[Avis]Article sur PoshV3
Bonjour !
J'arrive peut être un peu tard, mais il faut savoir que je recherche des personnes motivées pour l'animation de ce site pour me seconder. En effet, Robin m'ayant laché, et étant bien occupé j'ai un peu de mal à tout gérer tout seul...
J'ai déjà fait un appel à candidatures il y a de nombreux mois et je n'ai pas eu de volontaires (mis à part Laurent).
Je trouve que c'est dommage d'éparpiller l'information PowerShell sur de nombreux blogs alors que ce site a justement pour vocation de fédérer les bonnes volontés et l'information en Français autour de PowerShell.
Donc si vous changez d'avis, faites moi signe !
Arnaud
PS : Sinon Richard, très bien ton article sur la v3 !!!
J'arrive peut être un peu tard, mais il faut savoir que je recherche des personnes motivées pour l'animation de ce site pour me seconder. En effet, Robin m'ayant laché, et étant bien occupé j'ai un peu de mal à tout gérer tout seul...
J'ai déjà fait un appel à candidatures il y a de nombreux mois et je n'ai pas eu de volontaires (mis à part Laurent).
Je trouve que c'est dommage d'éparpiller l'information PowerShell sur de nombreux blogs alors que ce site a justement pour vocation de fédérer les bonnes volontés et l'information en Français autour de PowerShell.
Donc si vous changez d'avis, faites moi signe !
Arnaud
PS : Sinon Richard, très bien ton article sur la v3 !!!
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 13 ans 2 semaines #10300
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:[Avis]Article sur PoshV3
Bonjour Arnaud,
Désolé, j'ai 'zappé' ton appel...
Quoi qu'il arrive, vous (tout le monde) pouvez compter sur moi pour intervenir, commenter, réagir et partager sur ce forum.... Bien entendu, à mon niveau de connaissances...
A l'époque où j'ai créé mon blog, c'était notamment par amusement et pour comprendre certaines 'subtilités' du Web (je reste un éternel curieux ).
Tu pourras noter que j'ai souvent mis en place des redirections vers ce site et que je n'hésites pas, suivant mes disponibilités (Cela me rappelle ce qu'avait écrit Laurent il n'y a pas longtemps dans ce forum : \"Ce n'est pas de la vitesse, juste de la disponibilité\"), à écrire des messages ici et là sur le forum
Je suis OK avec ta proposition... Toutefois, j'espère que cela ne dérangera personne si je conserve encore pour le moment mon blog.
De toute façon, il n'a pas pour vocation de remplacer ce site qui doit absolument continuer d'exister, pour la communauté française des administrateurs systèmes avides de PowerShell !
@ +
Matthew
J'ai déjà fait un appel à candidatures il y a de nombreux mois et je n'ai pas eu de volontaires (mis à part Laurent).
Désolé, j'ai 'zappé' ton appel...
Quoi qu'il arrive, vous (tout le monde) pouvez compter sur moi pour intervenir, commenter, réagir et partager sur ce forum.... Bien entendu, à mon niveau de connaissances...
A l'époque où j'ai créé mon blog, c'était notamment par amusement et pour comprendre certaines 'subtilités' du Web (je reste un éternel curieux ).
Tu pourras noter que j'ai souvent mis en place des redirections vers ce site et que je n'hésites pas, suivant mes disponibilités (Cela me rappelle ce qu'avait écrit Laurent il n'y a pas longtemps dans ce forum : \"Ce n'est pas de la vitesse, juste de la disponibilité\"), à écrire des messages ici et là sur le forum
Je suis OK avec ta proposition... Toutefois, j'espère que cela ne dérangera personne si je conserve encore pour le moment mon blog.
De toute façon, il n'a pas pour vocation de remplacer ce site qui doit absolument continuer d'exister, pour la communauté française des administrateurs systèmes avides de PowerShell !
@ +
Matthew
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 13 ans 2 semaines #10321
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Avis]Article sur PoshV3
Concernant le chargement automatique des fonctions hébergées dans un module, voici quelques infos.
Je regarde un peu sous le capot de cette version, à l'aide d' ILSpy et en vérifiant 2-3 trucs par-ci par-là, par exemple la variable $ExecutionContext.InvokeCommand.
Celle-ci contient, dans cette CTP, de nouveaux membres
EnableDefaultCommandNotFoundAction
CommandNotFoundAction
PostCommandLookupAction
PreCommandLookupAction
La premier est une méthode et les trois derniers sont des délégués d'événements.
Les deux derniers sont associés à l'algorithme de recherche des membres propre à PS. Le PreCommand n'a pas l'air au point, car il boucle sur appel à un write-host
Ces trois délégués utilisent la classe System.Management.Automation.CommandLookupEventArgs.
Donc, le délégué CommandNotFoundAction peut être utilisé pour associé un traitement lors de l'appel d'une commande inexistante.
A l'initialisation d'une session il est à null, c'est donc la recherche par défaut qui opère à savoir DefaultCommandNotFoundAction de la classe System.Management.Automation.CommandInvocationIntrinsics.
La méthode EnableDefaultCommandNotFoundAction, de cette même classe, crée par l'appel à DefaultCommandNotFoundAction le code de recherche suivant :
[code:1]
internal void DefaultCommandNotFoundAction(object commandName, CommandLookupEventArgs eventArgs)
{
if (eventArgs == null)
{
throw PSTraceSource.NewArgumentNullException(\"eventArgs\"«»);
}
string text = eventArgs.CommandName;
if (string.IsNullOrWhiteSpace(text))
{
return;
}
string[] array = text.Split(new char[]
{
'/',
'\\'
});
string text2 = null;
if (array.Length == 2)
{
text2 = array[0];
text = array[1];
}
Collection<PSModuleInfo> collection = PowerShell.Create(RunspaceMode.CurrentRunspace).AddCommand(\"Get-Module\"«»).AddParameter(\"-List\"«»).Invoke<PSModuleInfo>();
if (collection != null && collection.Count > 0)
{
foreach (PSModuleInfo current in collection)
{
if ((string.IsNullOrEmpty(text2) || string.Equals(text2, current.Name, StringComparison.OrdinalIgnoreCase)) && current.ExportedCommands.ContainsKey(text))
{
Collection<PSModuleInfo> collection2 = PowerShell.Create(RunspaceMode.CurrentRunspace).AddCommand(\"Import-Module\"«»).AddParameter(\"-Name\", current.Path).AddParameter(\"-PassThru\"«»).Invoke<PSModuleInfo>();
if (collection2 != null && collection2.Count == 1)
{
CommandInfo commandInfo = collection2[0].ExportedCommands[text];
if (commandInfo != null)
{
eventArgs.Command = commandInfo;
eventArgs.StopSearch = true;
break;
}
}
}
}
}
}
[/code:1]
Peut-être sera-til possible dans la version finale de désactiver ce mode ?
Je regarde un peu sous le capot de cette version, à l'aide d' ILSpy et en vérifiant 2-3 trucs par-ci par-là, par exemple la variable $ExecutionContext.InvokeCommand.
Celle-ci contient, dans cette CTP, de nouveaux membres
EnableDefaultCommandNotFoundAction
CommandNotFoundAction
PostCommandLookupAction
PreCommandLookupAction
La premier est une méthode et les trois derniers sont des délégués d'événements.
Les deux derniers sont associés à l'algorithme de recherche des membres propre à PS. Le PreCommand n'a pas l'air au point, car il boucle sur appel à un write-host
Ces trois délégués utilisent la classe System.Management.Automation.CommandLookupEventArgs.
Donc, le délégué CommandNotFoundAction peut être utilisé pour associé un traitement lors de l'appel d'une commande inexistante.
A l'initialisation d'une session il est à null, c'est donc la recherche par défaut qui opère à savoir DefaultCommandNotFoundAction de la classe System.Management.Automation.CommandInvocationIntrinsics.
La méthode EnableDefaultCommandNotFoundAction, de cette même classe, crée par l'appel à DefaultCommandNotFoundAction le code de recherche suivant :
[code:1]
internal void DefaultCommandNotFoundAction(object commandName, CommandLookupEventArgs eventArgs)
{
if (eventArgs == null)
{
throw PSTraceSource.NewArgumentNullException(\"eventArgs\"«»);
}
string text = eventArgs.CommandName;
if (string.IsNullOrWhiteSpace(text))
{
return;
}
string[] array = text.Split(new char[]
{
'/',
'\\'
});
string text2 = null;
if (array.Length == 2)
{
text2 = array[0];
text = array[1];
}
Collection<PSModuleInfo> collection = PowerShell.Create(RunspaceMode.CurrentRunspace).AddCommand(\"Get-Module\"«»).AddParameter(\"-List\"«»).Invoke<PSModuleInfo>();
if (collection != null && collection.Count > 0)
{
foreach (PSModuleInfo current in collection)
{
if ((string.IsNullOrEmpty(text2) || string.Equals(text2, current.Name, StringComparison.OrdinalIgnoreCase)) && current.ExportedCommands.ContainsKey(text))
{
Collection<PSModuleInfo> collection2 = PowerShell.Create(RunspaceMode.CurrentRunspace).AddCommand(\"Import-Module\"«»).AddParameter(\"-Name\", current.Path).AddParameter(\"-PassThru\"«»).Invoke<PSModuleInfo>();
if (collection2 != null && collection2.Count == 1)
{
CommandInfo commandInfo = collection2[0].ExportedCommands[text];
if (commandInfo != null)
{
eventArgs.Command = commandInfo;
eventArgs.StopSearch = true;
break;
}
}
}
}
}
}
[/code:1]
Peut-être sera-til possible dans la version finale de désactiver ce mode ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 13 ans 1 semaine #10333
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Avis]Article sur PoshV3
Laurent Dardenne écrit:
[code:1] #Turn off module autoloading:
$env:«»psdisablemoduleautoloading = $true[/code:1]
Il précise également que la méthode Commandnotfoundaction doit renvoyer :
[code:1]$eventargs.stopsearch = $true[/code:1]
A tester donc.<br><br>Message édité par: Laurent Dardenne, à: 27/09/11 19:46
Je viens de lire un post, de la semaine dernière, sur la mailing des MVP PS, Oisin Grehan y fait mention de la variable suivante pour désactiver l'autochargement :Peut-être sera-til possible dans la version finale de désactiver ce mode ?
[code:1] #Turn off module autoloading:
$env:«»psdisablemoduleautoloading = $true[/code:1]
Il précise également que la méthode Commandnotfoundaction doit renvoyer :
[code:1]$eventargs.stopsearch = $true[/code:1]
A tester donc.<br><br>Message édité par: Laurent Dardenne, à: 27/09/11 19:46
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.108 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Contributions à la communauté
- [Avis]Article sur PoshV3