入門編:PowerShellの概要と環境構築
PowerShell の基本概念、従来のコマンド環境との違い、PowerShell 7 の導入手順、およびコマンド探索に不可欠なヘルプ機能について解説します。
PowerShellとは
PowerShell は、Microsoft が開発したコマンドラインシェルおよびスクリプト言語です。システム管理、クラウド運用の自動化、日常的な定型作業の効率化を目的として広く利用されています。
従来のコマンドプロンプト(cmd.exe)や Linux の Bash などのシェルは、コマンド間のデータの受け渡しをすべて単純な「文字列(テキスト)」として行います。そのため、目的のデータを取り出すには文字列の切り出しや正規表現による複雑な加工が必要でした。
PowerShell の最大の特徴は、データを文字列ではなく「オブジェクト(属性や振る舞いを持つ構造化データ)」として扱う点にあります。この仕組みにより、出力結果の解析や加工を直感的かつ安全に行うことができます。
Windows PowerShell 5.1 と PowerShell 7.x
PowerShell には、Windows に標準搭載されている「Windows PowerShell 5.1」と、最新のオープンソース版である「PowerShell 7.x」の2系統が存在します。
| 項目 | Windows PowerShell 5.1 | PowerShell 7.x |
|---|---|---|
| 実行ファイル名 | powershell.exe | pwsh.exe(または pwsh) |
| 基盤フレームワーク | .NET Framework(Windows専用) | .NET(クロスプラットフォーム) |
| 対応OS | Windows のみ | Windows, macOS, Linux |
| 開発状態 | 保守運用(機能追加終了) | 活発な新機能追加・性能改善中 |
| 並行処理機能 | なし(バックグラウンドジョブのみ) | ForEach-Object -Parallel 対応 |
現代のシステム開発やクロスプラットフォーム環境での自動化では、PowerShell 7.x の利用が標準です。
インストールと起動
各 OS における PowerShell 7 の導入方法と起動手順を説明します。
» Windows への導入
Windows では、パッケージマネージャー(winget)を使用して簡単に導入できます。管理者権限または一般ユーザー権限のターミナルで次のコマンドを実行します。
winget install --id Microsoft.PowerShell --source winget
インストール完了後、ターミナルで pwsh と入力して起動します。
» macOS への導入
macOS では、Homebrew を使用してインストールします。
brew install --cask powershell
» Linux への導入
Ubuntu や Debian などのディストリビューションでは、Microsoft リポジトリを登録するか、パッケージマネージャー経由でインストールします。
sudo apt-get update
sudo apt-get install -y powershell
実行ポリシー(ExecutionPolicy)の確認と設定
PowerShell には、未検証のスクリプトが誤って実行される事故を防ぐための「実行ポリシー」という安全機構が用意されています。これはセキュリティの境界線ではなく、ユーザーの操作ミスを防止するための保護機構です。
現在の実行ポリシーを確認するには Get-ExecutionPolicy を実行します。
Get-ExecutionPolicy -List
既定ではスクリプト実行が制限されている場合があります。自分で作成したスクリプトやインターネットからダウンロードした署名付きスクリプトを実行可能にするには、現在のユーザーのスコープに対してポリシーを RemoteSigned に変更します。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
探索とヘルプの3大コマンドレット
PowerShell には、コマンドの仕様や使い方を調べるための3つの基本コマンドレットが用意されています。
» Get-Command(コマンドの検索)
利用可能なコマンドレット、関数、エイリアスを検索します。名詞や動詞にワイルドカード(*)を指定して探すことができます。
# サービス関連のコマンドを一覧表示する
Get-Command *-Service
# Process という名詞を持つコマンドを検索する
Get-Command -Noun Process
» Get-Help(使い方の確認)
指定したコマンドレットの使い方、構文、パラメータ一覧、使用例を確認します。
# 基本的な使い方を表示する
Get-Help Get-Process
# 実用的なコード例を表示する
Get-Help Get-Process -Examples
# 最新のヘルプコンテンツをインターネットからダウンロードして更新する
Update-Help
» Get-Member(オブジェクトの構造確認)
コマンドの出力結果がどのようなプロパティ(値)やメソッド(操作)を持っているかを調査します。PowerShell のオブジェクト指向を理解する上で最も重要なコマンドレットです。
# プロセスオブジェクトが持つプロパティとメソッドを調べる
Get-Process | Get-Member