PowerShellとは何ですか?
- 05/22/2020
- 5分読む
-
- j
- s
- s
ul powershellは、クロスプラットフォームのタスク自動化と構成管理フレームワークであり、コマンドラインシェルとスクリプト言語で構成されています。 テキストを受け入れて返すほとんどのシェルとは異なり、PowerShellは.NET共通言語ランタイム(CLR)の上に構築され、受け入れて返します。ネットオブジェクト。, この根本的な変化を全く新しい手法のための自動化を実現しております。
出力はオブジェクトベースです
従来のコマンドラインインターフェイスとは異なり、PowerShellコマンドレットはobjects.An オブジェクトは、スクリーン上に表示される文字の文字列だけでなく、構造化された情報です。 コマンド出力には、必要に応じて使用できる追加の情報が常に含まれます。
過去にテキスト処理ツールを使用してデータを処理したことがある場合、PowerShellで使用すると異なる動作をしていることがわかります。, ほとんどの場合、特定の情報を抽出するためにテキスト処理ツールは必要ありません。 標準のPowerShell objectsyntaxを使用して、データの一部に直接アクセスします。
コマンドファミリは拡張可能です
cmd.exe
などのインターフェイスは、組み込みのコマンドセットを直接拡張する方法を提供しません。 cmd.exe
で実行する外部コマンドラインツールを作成できます。 しかし、これらの外部ツールには、ヘルプ統合などのサービスはありません。 cmd.exe
は、これらの外部ツールが有効なコマンドであることを自動的に認識しません。,
PowerShellのコマンドはコマンドレットと呼ばれます。 利用できる各cmdlet別途、theirpowerが実現することで、さらにそれらを組み合わせて複雑かつ事ができます。 多くのシェルと同様に、PowerShellはコンピュータ上のファイルシステムにアクセスします。 PowerShellプロバ
を構築することが可能ですcmdlet、機能モジュールをコンパイルされたコードまたはイントロダクションです。 モジュールは、シェルにcmdletsとプロバイダを追加できます。, PowerShellでは、UNIXshellスクリプトやcmd.exe
バッチファイルに似たスクリプトもサポートされています。
コマンドエイリアスのサポート
PowerShellでは、代替名でコマンドを参照するエイリアスがサポートされています。 エイリアスを使用すると、他のシェルの経験を持つユーザーは、PowerShellのsimilaroperationsに対して既に知っている共通のコマンド名を使用できます。
エイリアシングは、新しい名前を別のコマンドに関連付けます。 たとえば、PowerShellにはClear-Host
という名前のinternalfunctionがあり、出力ウィンドウがクリアされます。, コマンドプロンプトでcls
またはclear
エイリアスのいずれかを入力できます。 PowerShellはこれらのエイリアスを解釈し、Clear-Host
関数を実行します。
この機能は、ユーザーがPowerShellを学ぶのに役立ちます。 まず、ほとんどのcmd.exe
およびUnixユーザーには、ユーザーがすでに名前で知っているコマンドの権限。 そのため、このような状況においては、 ただし、結果は十分に近く、ユーザーはpowershellコマンド名を知らなくても作業を行うことができます。, “筋肉記憶”は、新しいコマンドシェルを学ぶときの欲求不満のもう一つの主要な原因です。 何年もcmd.exe
を使用している場合は、反射的にcls
画面をクリアするコマンドを入力することができます。 Clear-Host
のエイリアスがないと、エラーメッセージが表示され、出力をクリアするために何をすべきかわかりません。
PowerShellはコンソール入力と表示を処理します
コマンドを入力すると、PowerShellは常にコマンドライン入力を直接処理します。 Powershellalはまた、画面に表示される出力をフォーマットします。, この違いは、各コマンドレットに必要な作業を削減するため、重要です。 これにより、どのコマンドレットでも常に同じ方法で処理できます。 コマンドレット開発者は、コマンドライン引数を解析するためのコードを記述する必要はありません。
従来のコマンドラインツールには、ヘルプを要求して表示するための独自のスキームがあります。 一部のコマンドラインツールは、/?
を使用してヘルプ表示をトリガーします。-?
、/H
、さらには//
, コンソール表示ではなくGUIウィンドウにヘルプを表示するものもあります。 Thewrongパラメーターを使用すると、ツールは入力した内容を無視し、タスクの実行を自動的に開始することがあります。PowerShellは自動的にコマンドラインを解析して処理するため、-?
パラメーターは常に”このコマンドのヘルプを表示”を意味します。
メモ
PowerShellでグラフィックアプリケーションを実行すると、アプリケーションのウィンドウが開きます。PowerShellは、指定したコマンドライン入力を処理する場合、またはapplicationoutputがコンソールウィンドウに返された場合にのみ介入します。, アプリケーションの内部動作には影響しません。
PowerShellにはパイプラインがあります
パイプラインは間違いなくコマンドラインインターフェイスで使用される最も価値のある概念です。 プロパティを使用すると、パイプラインは複雑なコマンドを使用する手間を減らし、フローの作業を見やすくします。 パイプライン内の各コマンドは、その出力をアイテムごとに次のコマンドに渡します。 コマンドは、一度に複数の項目を処理する必要はありません。 その結果、リソース消費が削減され、すぐに出力を得る能力。,
パイプラインに使用される表記法は、他のシェルで使用される表記法と同様です。 一見、itmayない目に見えないくらかのパイプラインとは異なるユー. がんのテキストの画面で、ユー管物は、テキスト、コマンド.,
たとえば、Out-Host
コマンドレットを使用して、他のコマンドからの出力をページ単位で強制的に表示すると、出力は画面に表示される通常のテキストと同じように見えます。
Get-ChildItem | Out-Host -Paging
ページングもCPU使用率を低下させます。Out-Host
コマンドレットに処理が転送されるため、ページングもCPU使用率を低下させます。表示する準備ができている完全なページ。 パイプラインの一時停止の実行でその前にあるコマンドレットは、出力の次のページが利用可能になるまで使用できます。,
パイプライン内のオブジェクト
PowerShellでコマンドレットを実行すると、コンソールウィンドウでオブジェクトをテキストとして表す必要があるため、テキスト出力が表示されます。 テキスト出力が表示されないすべてのプロパティのtheobjectが出力されます。
たとえば、Get-Location
コマンドレットを考えてみましょう。 テキスト出力は情報の要約であり、Get-Location
によって返されるオブジェクトの完全な表現ではありません。 出力の見出しは、画面上の表示のためにデータをフォーマットするプロセスによって追加されます。,
Get-Location
Path----C:\
出力をGet-Member
コマンドレットにパイプすると、Get-Location
によって返されたオブジェクトに関する情報が表示されます。
Get-Location | Get-Member
Get-Location
現在のパスおよびその他の情報を含むPathInfoオブジェクトを返します。
組み込みヘルプシステム
Unixman
ページと同様に、PowerShellにはPowerShellconceptsとコマンド構文について説明する詳細なヘルプ記事が含まれています。, Get-Helpコマンドレットを使用して、これらの記事をcommandpromptに表示したり、PowerShell documentationonlineでこれらの記事の最新の更新バージョンを表示したりします。
PowerShellの詳細については、このサイトの”PowerShellの学習”セクションを参照してください。