Question
Nouveau projet Codeplex : Psionic
- SiSMik
- Hors Ligne
- Membre platinium
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 10 ans 2 mois #16989
par SiSMik
Réponse de SiSMik sur le sujet Re:Nouveau projet Codeplex : Psionic
Salut,
Lors des techdays on m'a démandé si il existait un moyen de compresser un fichier en powershell, du coup je me suis permis de mettre en avant votre taff sur ce module
@+
PS: désolé de pas venir plus souvent ici
Lors des techdays on m'a démandé si il existait un moyen de compresser un fichier en powershell, du coup je me suis permis de mettre en avant votre taff sur ce module
@+
PS: désolé de pas venir plus souvent ici
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 10 ans 2 mois #16991
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Nouveau projet Codeplex : Psionic
benduru écrit:
Une version stable devrait voir le jour prochainement, pour le moment je me bats avec la gestion des PSPath
benduru écrit:
En passant, combien de personnes avez-vous eu lors de vos sessions aux techdays ?
Merci.Lors des techdays on m'a démandé si il existait un moyen de compresser un fichier en powershell, du coup je me suis permis de mettre en avant votre taff sur ce module
Une version stable devrait voir le jour prochainement, pour le moment je me bats avec la gestion des PSPath
benduru écrit:
Tu viens quand tu veux, tu connais l'adressePS: désolé de pas venir plus souvent ici
En passant, combien de personnes avez-vous eu lors de vos sessions aux techdays ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 10 ans 2 mois #16994
par SiSMik
Réponse de SiSMik sur le sujet Re:Nouveau projet Codeplex : Psionic
Salut Laurent,
On a fait 200/300 sur celle du mercredi qui tombait pil poil pendant LA session des techdays, et celle du vendredi peut être 400.
Les chiffres au niveau des réservations étaient bien supérieurs, histoire de nous mettre la pression quoi ^^
On a essayé de proposer un peu de technique dans ce monde de marketing !
On a fait 200/300 sur celle du mercredi qui tombait pil poil pendant LA session des techdays, et celle du vendredi peut être 400.
Les chiffres au niveau des réservations étaient bien supérieurs, histoire de nous mettre la pression quoi ^^
On a essayé de proposer un peu de technique dans ce monde de marketing !
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 10 ans 2 mois #16996
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Nouveau projet Codeplex : Psionic
Salut Fabien
benduru écrit:
benduru écrit:
C'est très bien, bravo !On a fait 200/300 sur celle du mercredi qui tombait pil poil pendant LA session des techdays, et celle du vendredi peut être 400.
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 10 ans 2 mois #17046
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Nouveau projet Codeplex : Psionic
Avant de livrer une version stable, voici une manière de configurer un module, on peut utiliser des fichiers plat, xml ou encore
ceci
.
J'ai opté pour une configuration via une fonction externe appelée par le code du module, si toutefois elle existe au moment de l'Import-Module.
Psionic propose une configuration par défaut à minima, si on souhaite utiliser des propriétés personnelles on utilisera la fonction Get-PsIonicDefaultSfxConfiguration :
[code:1]
function Get-PsIonicDefaultSfxConfiguration {
#Create a personnal SFX configuration
#
#When this function exists before importing the module psionic,
#it becomes the default configuration. See Get-PsIonicSfxOptions function.
$SfxOptions=@{
ExeOnUnpack=\"Powershell -noprofile -File .\MySetup.ps1\"
ExtractDirectory='%TEMP%'
Description='Archive autoextractible exécutant un script Powershell en fin d''extraction.'
FileVersion='1.0'
IconFile=\"$(($env:«»PSModulePath -split ';')[0])\PsIonic\PsIonic.ico\"
ExtractExistingFile='OverwriteSilently'
NameOfProduct='Test'
VersionOfProduct='1.0'
Copyright='Auteur Laurent Dardenne.'
#Additional options for the csc.exe compiler, when producing the SFX
#see : msdn.microsoft.com/en-us/library/6s2x2bzy.aspx
AdditionalCompilerSwitches= '/optimize'
#WindowTitle='' with -GUI
Quiet=$false #switch parameter
Remove=$false #switch parameter
}
New-ZipSfxOptions @SfxOptions -Cmdline # -Cmdline or -GUI
}#Get-DefaultSfxConfiguration
[/code:1]
On crée une hashtable que l'on passe en splatting à New-ZipSfxOptions, fonction de création de configuration.
L'intérêt est que l'on peut utiliser du code PS dans ces déclarations.
Mais, eh oui avec PS on peut faire beaucoup de chose, mais ce n'est pas tjr triviale. Quel dommage...
Donc, le petit problème c'est que la fonction externe appelée dans le module, utilise une fonction exportée du module.
Là on tombe sur le cas du PSOeuf et de la PSPoule, car la fonction du module n'est pas encore accessible dans l'état de session de la fonction.
Celle-ci ne l'est qu'au retour de l'Import-Module, en tout cas c'est le comportement constaté avec PS v2.
Pour le résoudre, on doit utiliser une recette connue qui est d'injecter le code de la fonction dans l'état de session du module ainsi la fonction New-ZipSfxOptions devient accessible au code de la fonction externe Get-DefaultSfxConfiguration.
[code:1]
If (Test-Path Function:Get-PsIonicDefaultSfxConfiguration)
{
#A ce stade, les fonctions de ce module ne sont pas encore accessible à la fonction externe.
#Même si ce code se trouvait après l'appel à Export-ModuleMember
$FunctionBounded=$MyInvocation.MyCommand.ScriptBlock.Module.NewBoundScriptBlock(${function:Get-PsIonicDefaultSfxConfiguration})
&$FunctionBounded|Set-PsIonicSfxOptions
}
[/code:1]
Reste qu'il faut toutefois s'assurer, dans Get-DefaultSfxConfiguration, d'utiliser uniquement du code sans dépendance à d'autres fonctions ou modules, sinon vous aurez droit au PSPoulailler...
J'ai opté pour une configuration via une fonction externe appelée par le code du module, si toutefois elle existe au moment de l'Import-Module.
Psionic propose une configuration par défaut à minima, si on souhaite utiliser des propriétés personnelles on utilisera la fonction Get-PsIonicDefaultSfxConfiguration :
[code:1]
function Get-PsIonicDefaultSfxConfiguration {
#Create a personnal SFX configuration
#
#When this function exists before importing the module psionic,
#it becomes the default configuration. See Get-PsIonicSfxOptions function.
$SfxOptions=@{
ExeOnUnpack=\"Powershell -noprofile -File .\MySetup.ps1\"
ExtractDirectory='%TEMP%'
Description='Archive autoextractible exécutant un script Powershell en fin d''extraction.'
FileVersion='1.0'
IconFile=\"$(($env:«»PSModulePath -split ';')[0])\PsIonic\PsIonic.ico\"
ExtractExistingFile='OverwriteSilently'
NameOfProduct='Test'
VersionOfProduct='1.0'
Copyright='Auteur Laurent Dardenne.'
#Additional options for the csc.exe compiler, when producing the SFX
#see : msdn.microsoft.com/en-us/library/6s2x2bzy.aspx
AdditionalCompilerSwitches= '/optimize'
#WindowTitle='' with -GUI
Quiet=$false #switch parameter
Remove=$false #switch parameter
}
New-ZipSfxOptions @SfxOptions -Cmdline # -Cmdline or -GUI
}#Get-DefaultSfxConfiguration
[/code:1]
On crée une hashtable que l'on passe en splatting à New-ZipSfxOptions, fonction de création de configuration.
L'intérêt est que l'on peut utiliser du code PS dans ces déclarations.
Mais, eh oui avec PS on peut faire beaucoup de chose, mais ce n'est pas tjr triviale. Quel dommage...
Donc, le petit problème c'est que la fonction externe appelée dans le module, utilise une fonction exportée du module.
Là on tombe sur le cas du PSOeuf et de la PSPoule, car la fonction du module n'est pas encore accessible dans l'état de session de la fonction.
Celle-ci ne l'est qu'au retour de l'Import-Module, en tout cas c'est le comportement constaté avec PS v2.
Pour le résoudre, on doit utiliser une recette connue qui est d'injecter le code de la fonction dans l'état de session du module ainsi la fonction New-ZipSfxOptions devient accessible au code de la fonction externe Get-DefaultSfxConfiguration.
[code:1]
If (Test-Path Function:Get-PsIonicDefaultSfxConfiguration)
{
#A ce stade, les fonctions de ce module ne sont pas encore accessible à la fonction externe.
#Même si ce code se trouvait après l'appel à Export-ModuleMember
$FunctionBounded=$MyInvocation.MyCommand.ScriptBlock.Module.NewBoundScriptBlock(${function:Get-PsIonicDefaultSfxConfiguration})
&$FunctionBounded|Set-PsIonicSfxOptions
}
[/code:1]
Reste qu'il faut toutefois s'assurer, dans Get-DefaultSfxConfiguration, d'utiliser uniquement du code sans dépendance à d'autres fonctions ou modules, sinon vous aurez droit au PSPoulailler...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 10 ans 2 mois #17052
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Nouveau projet Codeplex : Psionic
Cela fait longtemps que je suis pas venu sur le forum et je ramasse une migraine de bon matin :o
Félicitation les mecs, un beau projet.
Félicitation les mecs, un beau projet.
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.090 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Discussions générales
- Nouveau projet Codeplex : Psionic