IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Comment créer une bibliothèque [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Par défaut Comment créer une bibliothèque
    Bonjour à tous,

    Je débarque dans le monde du powershell et je viens de découvrir que sur DVP on avais pas mal de ressource dispo sur le sujet

    Je m'interroge sur la création d'une bibliothèque en powershell et donc je sollicite votre aide.
    Ce que je souhaites :
    1 - créé une bibliothèque de fonction
    2 - que le code ne soit pas directement accessible (une dll ou autre)
    3 - rester en powershell (si possible)
    4 - que cette bibliothèque soit facilement accessible dans d'autre scripts

    J'ai vu qu'en PS il est possible de créer ses propres cmdlet, mais d'après ce que j'ai lu cela ne répond pas au point 2.
    Est ce que vous voyez une solution pour répondre à ces différentes problématiques ?

    En attendant je vais regarder le tuto sur la gestion des ressources, histoire de voir comment créer une dll (mais à priori pas en powershell)

    Merci d'avance,
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    pour le point 2, quelles sont tes contraintes ?
    Quels type de traitement ?
    Quelles type d'utilisateur ?

    Tu peux aussi embarquer le framework PowerShell dans une DLL C# que tu obscurcie (cf. http://jargonf.org/wiki/obfusquer).

  3. #3
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Par défaut
    Salut,

    Je souhaites créer un framework de fonction pour simplifier l'utilisation d'un logiciel tier, cela passe par :
    - la gestion des utilisateurs,
    - la gestion des objets de ce logiciel
    - la mise à dispo de fonction pré-mâché faisant tel ou tel chose
    - l'organisation des scripts
    Pour l'instant je vais me contenter de lancer des traitements de type scripts, mais j'y intégrerai peut être plus tard un certain nombre de fonction qui utilise les APIs de ce logiciel.
    Vu le temps passé sur ce framework, je souhaiterais que ce code ne soit pas lisible directement. (rien n'empêche le Reverse engineering, mais bon c'est toujours mieux que rien )

    Pour les utilisateurs, ce sont en grande majorité des consultants juniors qui n'ont pas forcément la "culture" développeur et qui ont tendance à copier-coller les scripts pré-existant. Comme ça devient ingérable, ce framework devrait pouvoir recadrer un peu les choses

    D'après ce que tu me dit, il est possible de créer le framework en powershell puis d'obfusquer le code en c#.
    Pour la démarche ça serait donc :
    - la création du framework en powershell en utilisant les modules (car si j'ai bien tout suivi les cmdlet sont créé en .net)
    - la création d'un petit programme en c# qui obfusque simplement le script
    Si le code obfusqué ne ressemble plus du tout à l'original why not ?
    Mais concernant le programme c# je suis incapable de l'écrire (mon passé de développeur est très loin )
    Et puis si je passe par c#, alors autant créé une dll directement en écrivant tout en c#, non ?

    Sinon j'ai trouvé un lien intéressant qui permettent de créer un exe à partir d'un ps1 : ps2exe
    Pour l'instant c'est une beta, mais ça à l'air prometteur. Je vais tester pour le fun, mais étant en beta ça n'est pas une solution acceptable.

    Bonne journée,
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par kalyparker Voir le message
    D'après ce que tu me dit, il est possible de créer le framework en powershell puis d'obfusquer le code en c#.
    Pas tout à fait, je pensais à une solution comme celle que tu cites : PS2Exe.
    Citation Envoyé par kalyparker Voir le message
    - la création du framework en powershell en utilisant les modules
    Dans ton cas ce serait un module binaire ( 1 manifest + DLL)
    Citation Envoyé par kalyparker Voir le message
    (car si j'ai bien tout suivi les cmdlet sont créé en .net)
    Oui, mais des fonctions avancées peuvent suffire.
    Citation Envoyé par kalyparker Voir le message
    - la création d'un petit programme en c# qui obfusque simplement le script
    Pour être exécuté il te faudra le décrypter, comme PS est dynamique et permet d'accèder aux métadonnées (voir ceci, attention le lien vers PowerLocker, qui n'existe plus, semble dangeureux), je doute de la solution :/
    Il faut creuser le sujet...
    Il existe la notion de runspace contraint, mais ayant peu de pratique sur le sujet je ne sais si cela pourrait t'aider, c'est une piste, reste à savoir si elle ne donne pas vers un cul-de-sac
    Citation Envoyé par kalyparker Voir le message
    Et puis si je passe par c#, alors autant créé une dll directement en écrivant tout en c#, non ?
    Exact ou faire un mixte.
    Mais les langages statiques offriront de toute façon beaucoup plus de possibilités.

  5. #5
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Par défaut
    Merci Laurent pour tout ces conseils.

    Je vais prendre un peu le temps de tester ces différentes possibilités mais là je vois un peu plus clair sur ce qu'il est possible de faire.
    Je pense faire un premier jet en utilisant un module binaire et puis on verra ensuite comment améliorer ça
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  6. #6
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Un tutoriel en deux parties sur les modules binaires, rédigé par Adam Driscoll développeur et leader technique chez Quest Software.

    Building Binary PowerShell Modules – Part 1 – Getting Started
    http://csharpening.net/?p=738#

    Building Binary PowerShell Modules – Part 2 – Design Principles and Other Guidelines :
    http://csharpening.net/?p=853#

  7. #7
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Par défaut


    Tant qu'on est dans les liens intéressants sur ce sujet, j'avais trouvé 2 chapitres issue du livre de référence "Windows PowerShell in Action" du papa du powershell : Converting a PowerShell Script into a Module - part 1 et part 2

    A bientôt
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment créer une bibliothéque sous sas
    Par cococmoi dans le forum Débutez
    Réponses: 3
    Dernier message: 23/03/2012, 19h09
  2. Comment créer une bibliothèque XLL ?
    Par hibou107 dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 21/04/2011, 11h39
  3. Réponses: 18
    Dernier message: 15/04/2009, 09h14
  4. [VBA-E] comment créer une bibliothèque de classes ?
    Par james-mi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/05/2006, 21h04
  5. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo