回答:
StackOverflowには、Jeffrey Snover(PowerShellデザイナー)からの素晴らしい答えがあります。
パラダイムについての価値判断を行わない場合、PowerShellの主な利点は.Net統合と現職です。Windows2008サーバー以降、デフォルトでバンドルされ、2003および2003 R2のサービスパックにロードされます。
公平を期すために、スクリプト作成には他にもいくつかの選択肢があります。たとえば、PerlやPythonなどです。Pythonには、ネイティブの.Net統合が必要な場合に、IronPythonを使用するオプションもあります。実際、IronPythonはディレクトリにドロップするだけで問題なくインストールされます。別のインストール手順を必要とせずに、アプリケーションに簡単にバンドルできます。
Powershellの主要な強みは、少し両刃の剣です。.netオブジェクトをストリーミングすることは非常に便利であり、その利点がありますが、コンポーネントがフレームワークとうまく機能する能力については、さらに多くの前提条件があります。これを実際に機能させるには、コマンドレットでラップする必要があります。テキスト出力はやや低レベルであり、解析が必要ですが、フレームワークとうまく機能するためのコンポーネントへの負担は少なくなります。
時間の経過とともに、Windowsエコシステム(MSとサードパーティコンポーネントの両方)の多くがコマンドレットラッパーを備え、Powershellで動作するようになると思います。これが発生すると、Powershellのケースがより強力になります。
歴史的に、管理の観点から見たWindowsの従来の主な弱点の1つは、スクリプトのサポートが不十分であったことです。MSはこれを数年前に認識しており、数回の不完全な試み(WSHなど)の後、Powershellはこれまでのところ、この欠陥を修正するための最も信頼できる取り組みです。
利点:-
タスクの自動化:-ユーザーを1000台のマシンに追加するなどのタスクは、手作業では面倒な作業です。しかし、PowerShellの助けを借りて、単純なスクリプトを記述するだけで、そのスクリプトが実行され、すべてのクライアントが自動的に構成されます。したがって、手順を自動的に繰り返すことで時間を節約できます。Windows PowerShellのバックアップ/復元スクリプトは、(Windowsタスクスケジューラを使用して)開発およびスケジュールできますが、サーバーの全体管理は、使い捨てのバックアップと復元に使用されます。Windows PowerShellには、運用データベースの代わりにSQLスナップショットに対して実行するという利点があります。Windows PowerShellコマンドのパラメーターの1つによりSQLスナップショットが生成され、Windows PowerShellは本番データベースではなくスナップショットに対してアクションを実行します。これにより、運用環境でのバックアップ操作によるリソースへの影響が軽減されます。Windows PowerShellを使用すると、SharePoint管理者はバックアップまたは復元のオプションをより詳細に制御できます。
リモート機能の改善:-重要な点が2つあります。1つは、Windows 7デスクトップがPowerShellコマンドを使用してサーバーと通信できることです。その結果、Windows 7ラップトップの技術者は、PowerShellスクリプトを実行することにより、サーバーをリモートで構成できます。次に、PowerShellで記述されたサーバーに常駐するクライアントログオンスクリプトは、Windows 7でより簡単に実行できます。また、Powershellを使用すると、リモートマシンを簡単に制御し、それらに重要なタスクを実行し、これらの変更を大規模に簡単に適用できます。リモート処理はネットワークリソースを使用します。したがって、Powershellを使用する場合は、GUIを使用しないため、特定のタスクに必要な帯域幅が削減され、ネットワークの過負荷の問題が解決されます。
一貫性:-タスクを完了するための一連の手順がある場合、Windows Powershellを使用すると、ステップを見逃すことがなく、可能な限り自動化し、自動化できないものについてはPowershellからプロンプトが表示されます。
.NETサポート:-Powershellは.NETフレームワークをサポートします。したがって、すべてのシステム関数をPowerShellスクリプトに簡単に追加できるため、プログラマーがスクリプトを開発するのに役立ちます。したがって、VDIのタスクの自動化は、はるかに簡単、単純、かつ効率的です。
手作業の軽減:-管理者は、スクリプトを記述するだけで、仮想マシンの設定をリモートで作成、削除、または変更できます。彼は個々のPCに行って仕事を終わらせる必要はありません。また、記述されたスクリプトはすべてのコンピューターで受け入れ可能です。したがって、管理者はそれらを何度も書き換える必要はありません。
再利用性:-特定のタスクを実行するために作成されたスクリプトは、後で使用するために保存でき、他のスクリプトと組み合わせてさまざまなタスクを実行することもできます。そのため、スクリプトを実行するだけで、反復的なタスクをはるかに簡単に実行できます。これにより、管理者はマシンを構成する時間と費用を節約できます。
パイプラインのサポート:-PowerShellの最大の利点は、テキストを解析する必要なく、何でも何にでもパイプできることです。1つのコマンドの出力を新しいセットへの入力として提供できるため、複雑なタスクを解決できます。