2013年10月25日金曜日

◆C#からPowerShellを使う

昔どこかで見かけたことはあるが、あまり使い道は無いのかと思っていた。

ふと思い立って、一応使い方を確認しておくことにした。

まずは、DLL(System.Management.Automation.dll)が必要なようなので参照を追加する。私のWindows8環境では以下の場所にあった。

"C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\3.0\System.Management.Automation.dll"

Get-Processを使うにはこんな感じでOKだった。

namespace PowerShellTest

{

    class Program

    {

        static void Main(string[] args)

        {

            PowerShell ps = PowerShell.Create();

            ps.AddCommand("Get-Process");

            var results = ps.Invoke();

            results.ToList().ForEach(

                p => Console.WriteLine(p.Properties["ProcessName"].Value));

           

        }

    }

}

image

Get-ProcessからPSObjectが返ってきてしまうので、プロパティが文字列参照になってしまうあたりが今1つな感じ・・・。

0 件のコメント:

コメントを投稿