1
私はEXEからトリガーしたいpowershellスクリプトを持っています。C#コードからPS1ファイルをトリガーします。 C#コードはexeでラップする必要があります
物事すでに試したか行うことはできません。
- は、プロセスが、それはexeファイルではなくPowerShellを期待している実行しているので、直接PowerShellを実行することはできません。
- Powershellスクリプトはかなり複雑なので、C#に移植するのは簡単ではなく、非常に時間がかかるでしょう。
- PS2EXEは動作しますが、セキュリティポリシーのために使用できません。
- ps1ファイルのexeファイルを作成する方法をGoogleに試しましたが、解決策が見つかりませんでした(ps2exeは除く)。だから私はC#を使ってps1を実行しようと決めてから、exeファイルを作成します。その後、exeとpowershellを同じmsiでラップします。
:コード上
Process p = new Process();
p.StartInfo = new ProcessStartInfo("powershell.exe");
p.StartInfo.Arguments = @"-Executionpolicy unrestricted C:\script\ms.ps1";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.Start();
しかし、それはミリ秒程度黒CMDウィンドウを点滅し、動作しています。ソースから
しようとしました次のコード:https://www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-C
string scriptText = System.IO.File.ReadAllText(@"C:\script\ms.ps1");
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(scriptText);
pipeline.Commands.Add("Out-String");
pipeline.Invoke();
runspace.Close();
同じ問題上記のように、数秒間黒画面を点滅。
次のいずれかの質問に回答すると、私の問題を解決することができますか?
- PS2EXEを使用せずにpowershell用のexeファイルを作成するにはどうすればよいですか?
- C#コードからpowershellを起動するときに、ウィンドウポップアップを無効にする方法はありますか?
- 問題を解決する方法は他にありますか?
- おかげ
あなたは[CreateNoWindow](https://stackoverflow.com/questions/3497924/console-window-still-popping-up-even-after-processwindowstyle-を試してみました隠された)? – Martheen
PowerShellを呼び出すときに引数に隠された-windowstyleを追加します。 –
Ps2Exeアプリケーションではなく、自宅のC#アプリケーションを実行するセキュリティポリシーの種類は何ですか? – vonPryz