Windows PowerShell 入門
Windows の強力なシェル環境 PowerShell の基本を学びます。起動方法からコマンドレットの使い方、パイプラインまで初心者向けに解説します。
PowerShell とは
PowerShell は、Microsoft が開発したコマンドラインシェル(文字ベースでコンピュータを操作するツール)です。Windows の管理や作業の自動化に使用します。
公式ドキュメント: PowerShell ドキュメント - Microsoft Learn
前提条件
この記事を読み進めるには、以下の環境が必要です。
- Windows 10 または Windows 11 を使用していること
- パソコンの基本操作(キーボード入力、マウス操作)ができること
一部の操作には管理者権限が必要です。
この記事で学べること
この記事では、以下のことを学べます。
- PowerShell の起動方法
- 基本的なコマンドの使い方
- ファイル操作やシステム情報の取得
- ヘルプ機能の活用方法
PowerShell の特徴
PowerShell には、従来のコマンドラインツールにはない特徴があります。
オブジェクト指向
PowerShell はテキストではなく「オブジェクト」を扱います。オブジェクトとは、データとその操作方法をまとめたものです。例えば、ファイル一覧を取得すると、ファイル名だけでなくサイズや作成日時などの情報も一緒に取得できます。
.NET ベース
PowerShell は .NET(ドットネット)という Microsoft の開発基盤の上で動作します。これにより、Windows の様々な機能に簡単にアクセスできます。
クロスプラットフォーム対応
最新の PowerShell 7 は、Windows だけでなく macOS や Linux でも動作します。
コマンドプロンプトとの違い
Windows には「コマンドプロンプト」という別のコマンドラインツールもあります。両者の違いを理解しておきましょう。
| 項目 | コマンドプロンプト | PowerShell |
|---|---|---|
| 出力形式 | テキスト | オブジェクト |
| ベース技術 | MS-DOS | .NET |
| 拡張性 | 限定的 | 高い |
PowerShell はコマンドプロンプトの上位互換として設計されています。コマンドプロンプトで使えるコマンドの多くは PowerShell でも使用できます。
PowerShell のバージョン
PowerShell には主に 2 つの系統があります。
Windows PowerShell 5.1
- Windows 10 / 11 に標準搭載
- 実行ファイル:
powershell.exe - .NET Framework ベース
- Windows 専用
PowerShell 7.x(最新版)
- 別途インストールが必要
- 実行ファイル:
pwsh.exe - .NET ベース(クロスプラットフォーム対応)
- 最新機能が利用可能
- 現在の安定版: 7.5.x(STS)、7.4.x(LTS)
PowerShell 7.x には LTS(Long-Term Support、長期サポート)版と STS(Standard Term Support、標準サポート)版があります。安定性を重視する場合は LTS 版をおすすめします。Windows PowerShell 5.1 と PowerShell 7 は並列してインストールできるため、初心者の方はまず標準搭載の Windows PowerShell 5.1 から始めることをおすすめします。
バージョンを確認するには、PowerShell を起動して以下のコマンドを実行します。
# PowerShell のバージョンを確認する $PSVersionTable.PSVersion
PowerShell を起動する
PowerShell を起動する方法はいくつかあります。お使いの Windows のバージョンに合わせて確認してください。
Windows 11 での起動方法
方法 1: スタートボタンから起動
- スタートボタンを右クリックします
- 「ターミナル」をクリックします
方法 2: 検索から起動
- タスクバーの検索ボックスに「PowerShell」と入力します
- 「Windows PowerShell」をクリックします
方法 3: Windows ツールから起動
- スタートメニューを開きます
- 「すべてのアプリ」から「Windows ツール」を探します
- 「Windows PowerShell」をクリックします
管理者権限が必要な操作を行う場合は、右クリックして「管理者として実行」を選択してください。Windows 11 では「ターミナル (管理者)」を選択することもできます。
Windows 10 での起動方法
方法 1: スタートボタンから起動
- スタートボタンを右クリックします
- 「Windows PowerShell」をクリックします
方法 2: 検索から起動
- タスクバーの検索ボックスに「PowerShell」と入力します
- 「Windows PowerShell」をクリックします
方法 3: スタートメニューから起動
- スタートメニューを開きます
- 「Windows PowerShell」フォルダを探します
- 「Windows PowerShell」をクリックします
コマンドレットの基本
PowerShell で実行するコマンドは「コマンドレット」(Cmdlet)と呼ばれます。コマンドレットには特徴的な命名規則があります。
動詞-名詞の命名規則
コマンドレットは「動詞-名詞」の形式で命名されています。これにより、コマンドの機能を推測しやすくなっています。
# Get-ChildItem: 子項目(ファイルやフォルダ)を取得する Get-ChildItem # Set-Location: 場所(カレントディレクトリ)を設定する # カレントディレクトリとは、現在作業中のフォルダのことです Set-Location C:\Users # Remove-Item: 項目(ファイルやフォルダ)を削除する Remove-Item example.txt
よく使われる動詞には以下のようなものがあります。
| 動詞 | 意味 | 例 |
|---|---|---|
| Get | 取得する | Get-Process |
| Set | 設定する | Set-Location |
| New | 新規作成する | New-Item |
| Remove | 削除する | Remove-Item |
| Copy | コピーする | Copy-Item |
| Move | 移動する | Move-Item |
エイリアス(別名)
PowerShell では、コマンドレットに短い別名(エイリアス)が用意されています。特に、Linux や コマンドプロンプトのコマンドに慣れている方には便利です。
| エイリアス | コマンドレット | 説明 |
|---|---|---|
| ls, dir | Get-ChildItem | ファイル一覧を表示 |
| cd | Set-Location | ディレクトリを移動 |
| cat | Get-Content | ファイル内容を表示 |
| cp | Copy-Item | ファイルをコピー |
| rm | Remove-Item | ファイルを削除 |
| ps | Get-Process | プロセス一覧を表示 |
# 以下の 3 つは同じ動作をします Get-ChildItem dir ls
エイリアスは便利ですが、スクリプトを書く際は正式なコマンドレット名を使うことをおすすめします。他の人がスクリプトを読んだときに理解しやすくなります。
タブ補完を活用する
PowerShell では、Tab キーを押すことでコマンドやパスを自動補完できます。
コマンドの補完
# 「Get-Chi」と入力して Tab キーを押すと「Get-ChildItem」に補完される Get-Chi[Tab]
パスの補完
# 「C:\Use」と入力して Tab キーを押すと「C:\Users」に補完される Set-Location C:\Use[Tab]
補完のコツ
- Tab キー: 次の候補に進む
- Shift + Tab: 前の候補に戻る
- Ctrl + Space: 補完候補の一覧を表示
タブ補完を活用すると、長いコマンド名やパスを正確に素早く入力できます。
よく使う基本コマンドレット
実際によく使うコマンドレットを、具体的な使用例とともに紹介します。
ファイル・フォルダの操作
ファイル一覧を表示する(Get-ChildItem)
# カレントディレクトリのファイル一覧を表示 Get-ChildItem # 特定のフォルダの内容を表示 Get-ChildItem C:\Users # 隠しファイルを含めて表示 Get-ChildItem -Force # 特定の拡張子のファイルのみ表示 Get-ChildItem *.txt
ディレクトリを移動する(Set-Location)
# 指定したディレクトリに移動 Set-Location C:\Users # 一つ上の階層に移動 Set-Location .. # ホームディレクトリに移動 Set-Location ~
ファイルの内容を表示する(Get-Content)
# ファイルの内容を表示 Get-Content example.txt # 最初の 10 行だけ表示 Get-Content example.txt -Head 10 # 最後の 5 行だけ表示 Get-Content example.txt -Tail 5
ファイルやフォルダを作成する(New-Item)
# 新しいファイルを作成 New-Item -ItemType File -Name "newfile.txt" # 新しいフォルダを作成 New-Item -ItemType Directory -Name "newfolder"
ファイルをコピー・移動・削除する
# ファイルをコピー Copy-Item source.txt destination.txt # フォルダごとコピー(-Recurse で中身も含める) Copy-Item sourcefolder destinationfolder -Recurse # ファイルを移動 Move-Item oldname.txt newname.txt # ファイルを削除 Remove-Item unwanted.txt # フォルダを中身ごと削除 Remove-Item oldfolder -Recurse
Remove-Item でファイルを削除すると、ごみ箱を経由せずに完全に削除されます。重要なファイルを削除する前に、必ず内容を確認してください。
プロセスの確認
実行中のプログラム(プロセス)を確認できます。
# すべてのプロセスを表示 Get-Process # 特定のプロセスを検索(例: メモ帳) Get-Process notepad # CPU 時間でソート(上位 10 件) Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
ヘルプ機能を活用する
PowerShell には充実したヘルプ機能があります。コマンドの使い方がわからないときは、積極的に活用しましょう。
Get-Help でコマンドを調べる
Get-Help コマンドレットで、任意のコマンドの使い方を確認できます。
# コマンドの基本的なヘルプを表示 Get-Help Get-ChildItem # 詳細なヘルプを表示 Get-Help Get-ChildItem -Detailed # 使用例を表示 Get-Help Get-ChildItem -Examples # すべての情報を表示 Get-Help Get-ChildItem -Full
初めて Get-Help を実行したとき、ヘルプファイルの更新を求められることがあります。その場合は、管理者として PowerShell を起動し、Update-Help コマンドを実行してください。
Get-Command でコマンドを探す
使いたいコマンドの名前がわからないときは、Get-Command で検索できます。
# すべてのコマンドを表示 Get-Command # 特定の動詞を持つコマンドを検索 Get-Command -Verb Get # 特定の名詞を含むコマンドを検索 Get-Command -Noun Process # ワイルドカードで検索 Get-Command *Item*
例えば「ファイルに関するコマンドを知りたい」ときは、以下のように検索します。
# Item という名詞を含むコマンドを検索 Get-Command -Noun Item
オンラインヘルプを参照する
より詳しい情報が必要な場合は、オンラインヘルプを参照できます。
# オンラインヘルプをブラウザで開く Get-Help Get-ChildItem -Online
このコマンドを実行すると、Microsoft の公式ドキュメントがブラウザで開きます。最新の情報や詳細な使用例を確認できます。
パイプラインの基礎
パイプラインは PowerShell の強力な機能の一つです。複数のコマンドを連結して、複雑な処理を簡潔に記述できます。
パイプラインとは
パイプラインとは、あるコマンドの出力を別のコマンドの入力として渡す仕組みです。|(パイプ)記号で複数のコマンドをつなぎます。
# コマンドA の出力を コマンドB に渡す コマンドA | コマンドB
従来のコマンドラインツールではテキストを受け渡しますが、PowerShell ではオブジェクトをそのまま渡します。これにより、データの加工や絞り込みが簡単にできます。
簡単なパイプライン例
結果をソートする
# ファイルをサイズ順(大きい順)に表示 Get-ChildItem | Sort-Object Length -Descending
結果を絞り込む
# 拡張子が .txt のファイルだけを表示 Get-ChildItem | Where-Object { $_.Extension -eq ".txt" }
$_ は、パイプラインで渡されてきた現在のオブジェクトを表す特殊な変数です。例えば、ファイル一覧をパイプで渡した場合、$_ は各ファイルを順番に表します。$_.Extension と書くと、そのファイルの拡張子プロパティにアクセスできます。
特定のプロパティだけを表示する
# ファイル名とサイズだけを表示 Get-ChildItem | Select-Object Name, Length
結果をファイルに出力する
# プロセス一覧を CSV ファイルに出力 Get-Process | Export-Csv processes.csv # テキストファイルに出力 Get-ChildItem | Out-File filelist.txt
複数のパイプラインを連結する
# 実行中のプロセスから、CPU 使用率が高い上位 5 件を取得し、名前と CPU 時間だけを表示 Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 | Select-Object Name, CPU
このように、パイプラインを使うことで、複雑な処理を順番につなげて記述できます。
まとめ
この記事では、PowerShell の基本的な使い方を学びました。
- PowerShell は Windows の強力なコマンドラインシェルで、オブジェクトを扱える
- コマンドレット は「動詞-名詞」形式で命名され、機能が推測しやすい
- エイリアス を使うと短いコマンドで操作できる
- タブ補完 を活用すると効率的に入力できる
- Get-Help と Get-Command でコマンドの使い方を調べられる
- パイプライン で複数のコマンドを連結して複雑な処理ができる
PowerShell を使いこなすことで、日常的な作業の自動化や Windows の管理が効率的に行えるようになります。