cygwin / unix-shellに対するPowershellの利点は何ですか


9

私が認識している明らかな違いは、Exchangeなどの特定のMS製品とのインターフェース機能です。しかし、そのような製品を管理する必要がない人にとって、Powershellの利点は何ですか?(私がbashとcygwinに堪能であると仮定して)Powershellを学ぶ理由は何ですか?

回答:



18

最も明らかな利点:テキスト出力(またはレガシーコマンド)がパイプラインに含まれていない限り、パイプを介してテキストを移動するのではなく、すべてのプロパティとメソッドを使用して.NETフレームワークオブジェクトのインスタンスを移動します。

これにより、より表現力があり、あいまいさの少ないパイプライン処理が可能になります。これは、ロケールや言語設定の影響もまったく受けません(たとえば、日付または数値のフォーマットを考え、それらを通常の文字列として処理する方法を考えます)。

これは、スクリプト環境で.NET Frameworkの多くの機能にアクセスできることも意味します。


6

パラダイムについての価値判断を行わない場合、PowerShellの主な利点は.Net統合と現職です。Windows2008サーバー以降、デフォルトでバンドルされ、2003および2003 R2のサービスパックにロードされます。

公平を期すために、スクリプト作成には他にもいくつかの選択肢があります。たとえば、PerlやPythonなどです。Pythonには、ネイティブの.Net統合が必要な場合に、IronPythonを使用するオプションもあります。実際、IronPythonはディレクトリにドロップするだけで問題なくインストールされます。別のインストール手順を必要とせずに、アプリケーションに簡単にバンドルできます。

Powershellの主要な強みは、少し両刃の剣です。.netオブジェクトをストリーミングすることは非常に便利であり、その利点がありますが、コンポーネントがフレームワークとうまく機能する能力については、さらに多くの前提条件があります。これを実際に機能させるには、コマンドレットでラップする必要があります。テキスト出力はやや低レベルであり、解析が必要ですが、フレームワークとうまく機能するためのコンポーネントへの負担は少なくなります。

時間の経過とともに、Windowsエコシステム(MSとサードパーティコンポーネントの両方)の多くがコマンドレットラッパーを備え、Powershellで動作するようになると思います。これが発生すると、Powershellのケースがより強力になります。

歴史的に、管理の観点から見たWindowsの従来の主な弱点の1つは、スクリプトのサポートが不十分であったことです。MSはこれを数年前に認識しており、数回の不完全な試み(WSHなど)の後、Powershellはこれまでのところ、この欠陥を修正するための最も信頼できる取り組みです。


2

PowerShellの最大の利点は、テキストを解析したり、sedやawkをgrokしたりせずに、何でも何にでもパイプできることです。これらの厄介なオブジェクトを方程式に入れずに、Powershellをパイプラインでコマンドをリンクするための自動 sedとawkがあると考えてください。


2

利点:-

  1. タスクの自動化:-ユーザーを1000台のマシンに追加するなどのタスクは、手作業では面倒な作業です。しかし、PowerShellの助けを借りて、単純なスクリプトを記述するだけで、そのスクリプトが実行され、すべてのクライアントが自動的に構成されます。したがって、手順を自動的に繰り返すことで時間を節約できます。Windows PowerShellのバックアップ/復元スクリプトは、(Windowsタスクスケジューラを使用して)開発およびスケジュールできますが、サーバーの全体管理は、使い捨てのバックアップと復元に使用されます。Windows PowerShellには、運用データベースの代わりにSQLスナップショットに対して実行するという利点があります。Windows PowerShellコマンドのパラメーターの1つによりSQLスナップショットが生成され、Windows PowerShellは本番データベースではなくスナップショットに対してアクションを実行します。これにより、運用環境でのバックアップ操作によるリソースへの影響が軽減されます。Windows PowerShellを使用すると、SharePoint管理者はバックアップまたは復元のオプションをより詳細に制御できます。

  2. リモート機能の改善:-重要な点が2つあります。1つは、Windows 7デスクトップがPowerShellコマンドを使用してサーバーと通信できることです。その結果、Windows 7ラップトップの技術者は、PowerShellスクリプトを実行することにより、サーバーをリモートで構成できます。次に、PowerShellで記述されたサーバーに常駐するクライアントログオンスクリプトは、Windows 7でより簡単に実行できます。また、Powershellを使用すると、リモートマシンを簡単に制御し、それらに重要なタスクを実行し、これらの変更を大規模に簡単に適用できます。リモート処理はネットワークリソースを使用します。したがって、Powershellを使用する場合は、GUIを使用しないため、特定のタスクに必要な帯域幅が削減され、ネットワークの過負荷の問題が解決されます。

  3. 一貫性:-タスクを完了するための一連の手順がある場合、Windows Powershellを使用すると、ステップを見逃すことがなく、可能な限り自動化し、自動化できないものについてはPowershellからプロンプトが表示されます。

  4. .NETサポート:-Powershellは.NETフレームワークをサポートします。したがって、すべてのシステム関数をPowerShellスクリプトに簡単に追加できるため、プログラマーがスクリプトを開発するのに役立ちます。したがって、VDIのタスクの自動化は、はるかに簡単、単純、かつ効率的です。

  5. 手作業の軽減:-管理者は、スクリプトを記述するだけで、仮想マシンの設定をリモートで作成、削除、または変更できます。彼は個々のPCに行って仕事を終わらせる必要はありません。また、記述されたスクリプトはすべてのコンピューターで受け入れ可能です。したがって、管理者はそれらを何度も書き換える必要はありません。

  6. 再利用性:-特定のタスクを実行するために作成されたスクリプトは、後で使用するために保存でき、他のスクリプトと組み合わせてさまざまなタスクを実行することもできます。そのため、スクリプトを実行するだけで、反復的なタスクをはるかに簡単に実行できます。これにより、管理者はマシンを構成する時間と費用を節約できます。

  7. パイプラインのサポート:-PowerShellの最大の利点は、テキストを解析する必要なく、何でも何にでもパイプできることです。1つのコマンドの出力を新しいセットへの入力として提供できるため、複雑なタスクを解決できます。


0

Cygwinは、Windowsのすべてのバージョンで使用できるとは限りません。最後に、64ビットマシンで問題があるかどうかを確認しました。PowershellはWindowsのデフォルトのコマンドシェルになり、Windowsマシン上のすべてのリソースへの「ネイティブ」アクセスを提供します。


私は64ビットVistaでcygwinを使用しており、完全に動作します。
ラジョ2009年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.