PowerShell チュートリアル

PowerShell(Windows PowerShell と PowerShell Core を含む)は、マイクロソフトが開発したクロスプラットフォームのコマンドラインツールおよびスクリプト言語であり、.NET フレームワークの上に構築されています。また、

PowerShell は、.NET Framework および後の .NET 上に構築されたコマンドラインインターフェースシェルと関連スクリプト言語で構成されています。当初は Windows コンポーネントのみでしたが、2016年8月18日にオープンソース化され、クロスプラットフォーム対応が提供されました。

PowerShell はオブジェクト指向です。つまり、単純なテキストではなく .NET オブジェクトを処理します。


PowerShell を学ぶべき人は?

PowerShell は、Windows システムを効率的に管理し、反復的なタスクを自動化し、マイクロソフト製品(Active Directory、Azure、Exchange など)と対話する必要がある技術者に適しています。これには、システム管理者、IT運用担当者、開発者、セキュリティエンジニアが含まれます。

PowerShell の中心的な利点は、グラフィカルインターフェースでのクリック操作を再利用可能なスクリプトコマンドに変換できることであり、バッチ操作や定期タスクに特に適しています。

基本的なコンピュータ操作のみが必要な一般ユーザーは、PowerShell を学ぶ必要はありません。


なぜ PowerShell が必要なのか?

UNIX の世界では、bash、zsh、sh などのコマンドラインシェルプログラムは、すでに開発者や運用担当者の標準装備となっています。しかし、Windows には当初、機能が限られた cmd.exe しかなく、スクリプト機能、モジュールサポート、オブジェクト処理能力が欠けていました。

PowerShell の誕生は、まさに Windows システムにおける自動化とコマンドライン制御の欠点を補うためでした。そして現在では、Windows から独立し、真にクロスプラットフォームな自動化ツールとなっています。

PowerShell の主要機能

  1. オブジェクト指向- コマンドは純粋なテキストではなく、オブジェクト(プロセス、ファイルなど)を出力します。
  2. パイプライン- オブジェクトの受け渡しをサポートし、データをチェーン状に処理できます。
  3. 統一命名規則- 採用する動詞-名詞形式(例:Get-Process)。
  4. クロスプラットフォーム対応- Windows、Linux、macOS で実行可能(PowerShell Core)。
  5. .NET との深い統合- .NET クラスライブラリやメソッドを直接呼び出せます。
  6. モジュール化設計- 機能はモジュール形式で拡張されます(例:ActiveDirectoryモジュール)。
  7. 自動化スクリプト- 複雑なスクリプト作成をサポート(変数、ループ、関数など)。
  8. リモート管理- を通じてEnter-PSSession 或 Invoke-Commandリモートマシンを管理します。
  9. エイリアスシステム- 省略形をサポート(例:lsの代替Get-ChildItem)。
  10. 強力なヘルプシステム- 内蔵Get-Helpとサンプルコード。

一言でまとめると:PowerShell は、効率的なシステム管理とクロスプラットフォームタスクのために設計された、オブジェクト指向の自動化ツールです。


PowerShell入門例

例

# 実行中のすべてのプロセスを取得
Get-Process

# 特定のプロセスの詳細情報を取得
Get-Process -Name "notepad" | Select-Object Name, CPU, WorkingSet

# 特定のプロセスを停止
Stop-Process -Name "notepad" -Force

関連リソース

公式ドキュメント:https://docs.microsoft.com/powershell/

その他の拡張