「東雲 忠太郎」の平凡な日常のできごと

「東雲 忠太郎」の平凡な日常のできごと

2024.03.17
XML
カテゴリ: C#.NET


C# WPF アプリケーションから PowerShell を呼び出す方法はいくつかありますが、その中でも一般的な方法の一つは、`System.Management.Automation` 名前空間を使用して PowerShell スクリプトを実行する方法です。以下に、基本的な手順を示します。


1. **PowerShell スクリプトの作成**:

   PowerShell スクリプトを作成し、必要なコマンドやスクリプトを含めます。たとえば、ファイルを作成するスクリプトなどがあります。


2. **C# アプリケーションで PowerShell を呼び出す**:

   WPF アプリケーションから PowerShell を呼び出すためには、`System.Management.Automation` 名前空間のクラスを使用します。以下に、基本的なサンプルコードを示します。


```csharp

using System;

using System.Management.Automation;


namespace WpfApp

{

    public class PowerShellCaller

    {

        public void RunScript(string scriptPath)

        {

            using (PowerShell ps = PowerShell.Create())

            {

                ps.AddScript(scriptPath);

                var results = ps.Invoke();

                foreach (var result in results)

                {

                    Console.WriteLine(result.ToString());

                }

            }

        }

    }

}

```


このサンプルコードでは、指定された PowerShell スクリプトファイルを実行し、その結果をコンソールに表示しています。必要に応じて、`Console.WriteLine` の代わりに他の処理を行うことができます。


3. **WPF アプリケーションから PowerShell を呼び出す**:

   WPF アプリケーションの任意の場所で、上記の `PowerShellCaller` クラスをインスタンス化し、`RunScript` メソッドを呼び出します。


```csharp

using System.Windows;


namespace WpfApp

{

    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();


            // PowerShell スクリプトのパス

            string scriptPath = @"C:\Path\To\Your\Script.ps1";


            // PowerShell スクリプトを実行

            PowerShellCaller powerShellCaller = new PowerShellCaller();

            powerShellCaller.RunScript(scriptPath);

        }

    }

}

```


このコードでは、WPF アプリケーションのメインウィンドウが開かれる際に PowerShell スクリプトが実行されます。必要に応じて、イベントハンドラやボタンのクリックなどのイベントに応じて PowerShell スクリプトを呼び出すこともできます。


注意点:

- PowerShell スクリプトが特権が必要なコマンドを実行する場合は、アプリケーションを管理者として実行する必要があります。

- PowerShell スクリプトの実行結果を適切に処理するために、適切なエラーハンドリングが重要です。






お気に入りの記事を「いいね!」で応援しよう

Last updated  2024.03.17 11:30:07


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

© Rakuten Group, Inc.
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: