44

私はC#について十分に理解しており、PowerShellについて非常に基本的な知識を持っています。私はWindowsPowerShellCTP3を使用しています。これは本当に楽しかったです。しかし、私はスクリプト/関数を書くことを超えたいと思っています。C#に関係するクールなものはありますか?

4

5 に答える 5

61

最高レベルでは、2つの異なるオプションがあります。C#プログラムからPowerShellをホストし、RunSpacesとパイプラインを介してPowerShellコマンドを実行できます。

または、PowerShell内からC#コードを実行できます。これは2つの方法で実行できます。PowerShellスナップイン、PowerShellコマンドレットとナビゲーションプロバイダーを提供するコンパイル済みdll、またはC#、VB、F#コードを動的にインポートできる新しいコマンドレットAdd-Typeを使用します。ヘルプから

$source = @"
public class BasicTest
{
    public static int Add(int a, int b)
    {
        return (a + b);
    }

    public int Multiply(int a, int b)
    {
        return (a * b);
    }
}
"@

Add-Type -TypeDefinition $source
[BasicTest]::Add(4, 3)
$basicTestObject = New-Object BasicTest 
$basicTestObject.Multiply(5, 2)
于 2009-04-12T19:48:25.953 に答える
34

C#とPowerShellでできる最も興味深いことは、CmdLetをビルドすることだと思います。これらは基本的に、マネージコードで記述され、通常の関数のように機能するPowerShellへのプラグインです。それらには動詞と名詞のペアがあり、すでに使用している関数の多くは実際には内部のコマンドレットです。

http://msdn.microsoft.com/en-us/magazine/cc163293.aspx

于 2009-04-12T19:33:08.907 に答える
8

答えは「状況によります」です。C#を使用してさまざまな処理を実行できます(ビルドウィンドウ、Webクライアント、およびモバイルクライアント)。

C#からPowerShellスクリプトを呼び出すことができます。このサイトを見てください==>リンク

c#コードをpowershell==>リンクに変換することもできます

于 2009-04-12T19:27:13.663 に答える
5

あなたはそれを2つの方法のうちの1つで見ることができます:

  1. C#プログラム内でPowerShellをどのように活用できますか
  2. PowerShell内でC#プログラミングをどのように活用できますか。

ある程度、それらはまったく異なる質問であり、答えも異なります。

C#から、PowerShellエンジン、実行スペース、パイプラインなどを活用できます。Exchanteの場合と同様に、C#を使用してすべてのGUIを実行してから、PowerShellコマンドレットを呼び出してすべてのハードを実行できます。このオプションは、活用するPowerShellコマンドレットまたはスクリプトが見つかった場合に適しています。

PowerShellから、C#を使用してPowerShellで実行できることを拡張します。cmdltsとプロバイダーを作成して、他のユーザーがアプリケーションデータにアクセスできるようにすることができます。または、PowerShellスクリプト内で使用できるオブジェクトを作成することもできます。このオプションは、より自動化された方法で管理されるようにアプリケーションを開くのに役立つ方法です。

したがって、何をしようとしているかに応じて、オプションがあります。

于 2009-05-22T10:51:29.037 に答える
2

スコット・ハンゼルマン、別名ハンゼルミニッツには、Powershell、CmdLets、C#などに関するポッドキャストがいくつかあります。それが何であるか、それがどのように機能するかなどを学びたいのであれば、それは最高です。彼のウェブサイトで検索してポッドキャストを入手してください。

彼のサイトにあるPS関連のポッドキャストのリスト(時系列の逆順):

#190:Powershell / Lee Holmes&Jason Shirkの状態
#162:Powershell 2.0
#49:Powershell / Bruce Payette
#36:Jeffrey Snover、Powershellアーキテクト
#24:Windows Powershell(MONAD)、パートII

于 2009-05-22T10:57:26.980 に答える