PowerShellPowerShell

PowerShell は、システム管理者とパワーユーザー向けに .NET Framework 上に構築されたタスクベースのコマンドライン シェルとスクリプト言語であり、複数のオペレーティング システム (Linux、macOS、Unix、Windows) の管理とこれらのオペレーティング システム上で実行されるアプリケーションに関連するプロセスを迅速に自動化するものです。Built on the .NET Framework, PowerShell is a task-based command-line shell and scripting language; it is designed specifically for system administrators and power-users, to rapidly automate the administration of multiple operating systems (Linux, macOS, Unix, and Windows) and the processes related to the applications that run on those operating systems.

PowerShell はオープン ソースですPowerShell is open source

PowerShell ベースのソース コードは現在、GitHub で入手可能であり、コミュニティ投稿が可能です。PowerShell base source code is now available in GitHub and open to community contributions. GitHub の PowerShell のソースを参照してください。See PowerShell source on GitHub.

PowerShell を入手」で必要なものから開始できます。You can start with the bits you need at get PowerShell. または、「はじめに」からクイック ツアーを開始します。Or, perhaps, with a quick tour at Getting Started

PowerShell の設計目標PowerShell design goals

Windows PowerShell は、従来からの問題を排除し、新しい機能を追加することにより、コマンド ラインおよびスクリプト環境を改善することを目的として設計されています。Windows PowerShell is designed to improve the command-line and scripting environment by eliminating long-standing problems and adding new features.

機能の見つけやすさDiscoverability

Windows PowerShell では、簡単にその機能を見つけられます。Windows PowerShell makes it easy to discover its features. たとえば、Windows サービスを表示したり変更したりするコマンドレットの一覧を検索するには、次のように入力します。For example, to find a list of cmdlets that view and change Windows services, type:

Get-Command *-Service

タスクを実行するコマンドレットが見つかったら、Get-Help コマンドレットを使用して、コマンドレットの詳細を確認することができます。After discovering which cmdlet accomplishes a task, you can learn more about the cmdlet by using the Get-Help cmdlet. たとえば、Get-Service コマンドレットのヘルプを表示するには、次のように入力します。For example, to display help about the Get-Service cmdlet, type:

Get-Help Get-Service

ほとんどのコマンドレットでは、操作を加えてから表示用のテキストに変換できるオブジェクトが出力されます。Most cmdlets emit objects which can be manipulated and then rendered into text for display. そのコマンドレットの出力を完全に理解するには、Get-Member コマンドレットにその出力をパイプ処理します。To fully understand the output of that cmdlet, pipe its output to the Get-Member cmdlet. たとえば、次のコマンドは、Get-Service コマンドレットによって出力されるオブジェクトのメンバーについての情報を表示します。For example, the following command displays information about the members of the object output by the Get-Service cmdlet.

Get-Service | Get-Member

ConsistencyConsistency

システム管理は複雑な作業になる場合があります。一貫性のあるインターフェースを備えたツールを使用することで、システム管理に特有の複雑な作業を制御しやすくなります。Managing systems can be a complex endeavor and tools that have a consistent interface help to control the inherent complexity. 残念ながら、コマンド ライン ツールもスクリプト可能な COM オブジェクトも一貫性に優れてはいません。Unfortunately, neither command-line tools nor scriptable COM objects have been known for their consistency.

Windows PowerShell の持つ一貫性は、その主要な利点の 1 つです。The consistency of Windows PowerShell is one of its primary assets. たとえば、Sort-Object コマンドレットの使用法を習得すると、その知識を使用して、あらゆるコマンドレットの出力を並べ替えることができます。For example, if you learn how to use the Sort-Object cmdlet, you can use that knowledge to sort the output of any cmdlet. コマンドレットごとに異なる並べ替えルーチンを習得する必要はありません。You do not have to learn the different sorting routines of each cmdlet.

さらに、コマンドレットの開発者は、コマンドレットの並べ替え機能を設計する必要はありません。In addition, cmdlet developers do not have to design sorting features for their cmdlets. Windows PowerShell は、基本的な機能を備えたフレームワークをコマンドレット開発者に提供し、インターフェイスの多くの側面について一貫性が維持されるよう開発者に強制します。Windows PowerShell gives them a framework that provides the basic features and forces them to be consistent about many aspects of the interface. このフレームワークにより、通常は開発者に委ねられる選択の一部が減ることになりますが、その代わり、堅牢かつ使いやすいコマンドレットの開発がより簡単に実行できるようになります。The framework eliminates some of the choices that are typically left to the developer, but, in return, it makes the development of robust and easy-to-use cmdlets much simpler.

対話型環境とスクリプト環境Interactive and Scripting Environments

Windows PowerShell は、対話型環境とスクリプト環境を組み合わせた環境であり、コマンド ライン ツールと COM オブジェクトへのアクセスを提供するだけでなく、.NET Framework クラス ライブラリ (FCL) の強力な機能を使用できるようにします。Windows PowerShell is a combined interactive and scripting environment that gives you access to command-line tools and COM objects, and also enables you to use the power of the .NET Framework Class Library (FCL).

この環境は Windows コマンド プロンプトを改良したもので、複数のコマンド ライン ツールを備えた対話型環境を提供します。This environment improves upon the Windows Command Prompt, which provides an interactive environment with multiple command-line tools. またそれは、Windows Script Host (WSH) スクリプトを改良したものでもあります。WSH では、さまざまなコマンドライン ツールや COM オートメーション オブジェクトを利用できますが、対話型の環境は用意されていません。It also improves upon Windows Script Host (WSH) scripts, which let you use multiple command-line tools and COM automation objects, but do not provide an interactive environment.

Windows PowerShell では、これらのすべての機能へのアクセスを統合することで、対話型環境のユーザーとスクリプト作成者の作業能力を向上させ、システム管理をより容易に行うことができます。By combining access to all of these features, Windows PowerShell extends the ability of the interactive user and the script writer, and makes system administration more manageable.

オブジェクト指向Object Orientation

Windows PowerShell との対話はコマンドをテキストで入力して行いますが、Windows PowerShell は、テキストではなくオブジェクトに基づいています。Although you interact with Windows PowerShell by typing commands in text, Windows PowerShell is based on objects, not text. コマンドの出力は、オブジェクトです。The output of a command is an object. 出力されたオブジェクトは、別のコマンドの入力として渡すことができます。You can send the output object to another command as its input. その結果、Windows PowerShell は、新しい強力なコマンド ライン パラダイムを導入すると同時に、他のシェルを利用してきたユーザーにとって使い慣れたインターフェイスを提供することができます。As a result, Windows PowerShell provides a familiar interface to people experienced with other shells, while introducing a new and powerful command-line paradigm. Windows PowerShell では、テキストではなくオブジェクトを渡せるようにすることで、コマンド間でデータを送信するという概念が拡張されています。It extends the concept of sending data between commands by enabling you to send objects, rather than text.

スクリプトへの移行が容易Easy Transition to Scripting

Windows PowerShell では、対話的なコマンドの入力から、それを基にしたスクリプトの作成および実行に容易に移行できます。Windows PowerShell makes it easy to transition from typing commands interactively to creating and running scripts. Windows PowerShell コマンド プロンプトでコマンドを入力することにより、タスクを実行するコマンドを見つけることができます。You can type commands at the Windows PowerShell command prompt to discover the commands that perform a task. 見つかったコマンドはトランスクリプト (履歴) に保存し、後でスクリプトとして使用するためにファイルにコピーできます。Then, you can save those commands in a transcript or a history before copying them to a file for use as a script.