Powershellを初めて使用する人として、私はある時点で100%明確ではありません。
もしも
「PowerShellでは、管理タスクは通常 、特定の操作を実装する特殊な.NETクラスであるコマンドレット(コマンドレットと発音)によって実行されます。」
それらのクラスで.Net実行可能ファイルを記述してコンソールアプリケーションとしてコンパイルする代わりに、スクリプトを作成する理由は何ですか?
Powershellを初めて使用する人として、私はある時点で100%明確ではありません。
もしも
「PowerShellでは、管理タスクは通常 、特定の操作を実装する特殊な.NETクラスであるコマンドレット(コマンドレットと発音)によって実行されます。」
それらのクラスで.Net実行可能ファイルを記述してコンソールアプリケーションとしてコンパイルする代わりに、スクリプトを作成する理由は何ですか?
PowerShellで本格的なデスクトップおよびサーバーソフトウェアを簡単に作成できるのに、.NETでアプリケーションを作成する理由は何ですか?
さまざまな状況で両方を使用する理由があります。PoSHスクリプト自体は単なる小さなテキストファイルであり、作成と保守が非常に簡単です。両方に手を出す人として、多くの状況で、システム保守タスクは、.NETアプリケーションよりもすばやく作成されたPoSHスクリプトを使用した方がはるかに簡単に実行できると思います。
とはいえ、.NET(私はC#を自分で使用しています)で達成するのがはるかに簡単なことがいくつかありますが、これらを開発するプロセスははるかに面倒であり、SysAdminsでは一般的ではない追加のスキルセットが必要です。
簡単に言えば、PoSHはSysAdminsを対象とし、.NETは開発者を対象としていますが、それはクロスオーバーの余地がないということではありません。
@MattGの回答に完全に同意します。
文化の周りにあるものを1つ追加したいと思います。Windows SysAdminsの文化は、プログラミング主導よりも「クリック」主導(グラフィックユーザーインターフェイスによる管理)です。
私はUnixの世界で働いていましたが、SysAdminsではパワースクリプター(sh、csh、ksh ...)があり、必要に応じてテーブルの隅に小さな「C」プログラムを書くことができます(パフォーマンスのため、または複雑なファイルフィルターなどとして機能します)。
.NET(2001)の開始以来、LinuxまたはUnixは「cc」コンパイラを使用できたので、Windows SysAdminsはC#コンパイラ(.NETディレクトリからCSC.EXEとして入手可能)を使用できますが、使用しません。最良のものはWSH(Window Script Shell)を使用していましたが、VBScriptはそれほど使いやすくなく、ケースごとに異なるCOMオブジェクトを検出する必要がありました。
Microsoftは、Windows SysAdminsにコマンドラインとスクリプト(WSH、netsh、wmicなど)を使用するように促す方法を増やしています。ここ数年(2006年)、MicrosoftはSysadminを手に取って、ユーザーインターフェイスから電源を切るための動力工具を提供することを決定しました(Exchange2007)。そのため、SysAdminはPowerShellを使用する以外に何もできなくなりました。しかし、彼らはデボルパーではないので、言語は解釈され、「オブジェクト文化」は初心者にはどういうわけか隠されています。
これで、優れたWindows SysAdminsは独自のC#クラスを開発し、PowerShellスクリプトにインラインで挿入できます。SysAdminsは開発者ではなく、プロセスを自動化するだけで済みます。