none
c# + PS1 + Resources RRS feed

  • Question

  • Bonjour à tous,

    Voici mon objectif :

    J'ai une petite appli avec des TextBox dans lesquels je vais mettre des informations qui seront des arguments.

    Je souhaite executer un script PowerShell MonScript.ps1 en le mettant dans mes Resources. 

    Le mettre dans les Resources, ça va. C'est pour la suite que ça coince.

    La commande se lance de la manière suivante si je la lance en DOS directement : 

    powershell.exe c:\MonScript.ps1 Argument1 Argument2 Argument3

    En C#, j'aimerai exécuter une commande du genre :

    var proc = "Powershell.exe" + MonProjet.Properties.Resources.Script + " " + TextBox1.Text + " "+ TextBox2.Text + " " + TextBox3.Text;

    proc.Start();

    c'est cette dernière partie que je ne sais pas faire et je n'arrive pas à trouver d'info interessante...

    Pour info, mon script Powershell est assez long donc je suis obligé de le laisser dans un fichier.

    Pouvez-vous m'aiguiller SVP ?

    Par avance merci !


    MCITP EA Windows Server 2008 R2 MCSA Windows Server 2012 Apprenti développeur C# EF WPF

    mercredi 20 janvier 2016 16:12

Réponses

  • Bonjour, Hageshii,

    Veuillez consulter le thread en bas :
    Calling Powershell command using C#
    Je vous remercie par avance de votre retour.

    Cordialement,
    Teodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 21 janvier 2016 15:21
    Modérateur

Toutes les réponses

  • Bonjour, Hageshii,

    Veuillez consulter le thread en bas :
    Calling Powershell command using C#
    Je vous remercie par avance de votre retour.

    Cordialement,
    Teodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 21 janvier 2016 15:21
    Modérateur
  • Bonjour,

    Je n'ai pas encore testé encore la solution proposée :(

    Juste une petite question : Est-ce que cette solution permet de copier un script complet qui contient des " ' " ?


    MCITP EA Windows Server 2008 R2 MCSA Windows Server 2012 Apprenti développeur C# EF WPF

    mardi 26 janvier 2016 12:56
  • Bonjour, Hageshi,

    Dans la solution proposée, dès que votre fichier est bien présent dans les ressources, les tests doivent finir avec succès.
    Je suis à votre disposition pour toute question complémentaire.

    Cordialement,
    Teodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 27 janvier 2016 14:24
    Modérateur
  • Bonjour,

    J'essaye de mettre en place la solution mais j'avoue que je suis un peu perdu là...

    J'ai bien mon script présent dans mes ressources mais je ne vraiment pas comment le lancer avec des arguments...


    MCITP EA Windows Server 2008 R2 MCSA Windows Server 2012 Apprenti développeur C# EF WPF

    mardi 2 février 2016 12:49
  • le dernier script que j'ai testé c'est lui-ci :

                ProcessStartInfo processInfo;
                Process process;
    
                processInfo = new ProcessStartInfo("powershell.exe", "-File " + Copie_Base_de_donnees.Properties.Resources.Script + " " + InstanceSourceTB.Text + " " + BaseSourcesTB.Text + " " + InstanceDestinationTB.Text + " " + BaseDestinationTB.Text + " " + ClassementTB.Text + " " + CopieDonneesCB.Text);
                processInfo.CreateNoWindow = true;
                processInfo.UseShellExecute = false;
    
                process = Process.Start(processInfo);
                process.WaitForExit();
    
                errorLevel = process.ExitCode;
                process.Close();



    MCITP EA Windows Server 2008 R2 MCSA Windows Server 2012 Apprenti développeur C# EF WPF

    mardi 2 février 2016 13:14
  • j'ai trouver ce script qui fonctionne : 

    RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
    
                Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
                runspace.Open();
    
                RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
    
                Pipeline pipeline = runspace.CreatePipeline();
    
                //Here's how you add a new script with arguments
                Command myCommand = new Command("notepad");
                CommandParameter testParam = new CommandParameter("key", "value");
                myCommand.Parameters.Add(testParam);
    
                pipeline.Commands.Add(myCommand);
    
                // Execute PowerShell script
                var results = pipeline.Invoke();
    mais comment mettre un script dans les ressources?



    MCITP EA Windows Server 2008 R2 MCSA Windows Server 2012 Apprenti développeur C# EF WPF

    mardi 2 février 2016 15:45
  • Bonjour,

    j'ai compris comment mettre un fichier dans les ressources mais je n'arrive pas à lire le fichier PS1. J'arrive à lire n'importe quel fichier text mais pas le fichier Powershell...

    Process.Start("powershell.exe -File " + MonProjet.ScriptPS.script.GenerateScript + " " + InstanceSourceTB.Text + " " + BaseSourcesTB.Text + " " + InstanceDestinationTB.Text + " " + BaseDestinationTB.Text + " " + ClassementTB.Text + " " + CopieDonneesCB.Text);

    Une idée ?


    MCITP EA Windows Server 2008 R2 MCSA Windows Server 2012 Apprenti développeur C# EF WPF

    mardi 9 février 2016 09:30