PowerShellのコマンドレットを使いこなしたいけれど、コマンドの多さに戸惑っていませんか?PowerShellコマンドレットは「動詞-名詞」という一貫した命名規則で構成されており、ルールさえ覚えれば初心者でも必要なコマンドを素早く見つけられます。
本記事では、コマンドレットの基本的な仕組みから、実務でよく使う主要コマンド一覧、効率的な調べ方までを網羅的に解説します。この記事を読めば、迷わずコマンドを使いこなし、Windows管理の自動化を始められるようになります。
記事のポイント
- PowerShellコマンドレットは「動詞-名詞」という直感的なルールで構成されており、初心者でも機能が推測しやすい
- 従来のコマンドと異なりデータを「オブジェクト」として扱うため、パイプラインで効率的な情報の抽出・加工ができる
Get-CommandやGet-Helpを活用すれば、膨大なコマンドの中から必要な機能や使い方を即座に調べられる- ファイル操作やシステム管理などの頻出コマンドレットを覚えれば、Windowsの定型業務を自動化できる
- エイリアスの使い分けを理解すれば、素早い操作と保守性の高いスクリプト作成を両立できる
PowerShellコマンドレットとは?基本の仕組みを理解しよう
Windowsのシステム管理や自動化を行う上で、 PowerShellコマンドレット(Cmdlet) は欠かせない存在です。従来のコマンドプロンプトとは異なり、.NETプラットフォーム(Windows PowerShell 5.1では.NET Framework、PowerShell 7以降では.NET)をベースに構築されているため、高度なシステム操作を直感的な構文で実行できます。
ここではまず、コマンドレットの定義や独自の構造、そしてなぜこれほど強力なのかを解説します。
コマンドレットの定義と従来のコマンドとの違い
コマンドレットは、PowerShell環境に組み込まれた単一機能のコマンドです。従来のcmd.exeで使用されていた外部コマンド(ipconfigやpingなど)とは、以下のような明確な違いがあります。
| 項目 | 従来のコマンド (CMD) | PowerShell コマンドレット |
|---|---|---|
| 実行主体 | 実行ファイル (.exe) や内部コマンド | .NET ベースのコマンド(C#クラスや関数で実装) |
| 出力形式 | テキスト(文字列) | オブジェクト |
| メモリ消費 | プロセスごとに起動するため重い | 同一プロセス内で動作し効率的 |
| コマンド連携 | テキスト解析が必要 | オブジェクトをそのまま渡せる |
コマンドレットは単体で動作するだけでなく、複数を組み合わせることで複雑なタスクを簡潔に記述できる設計になっています。
「動詞-名詞」の命名規則と主な動詞一覧
PowerShellコマンドレットの最大の特徴は、 「動詞-名詞」 という厳格な命名規則です。動作を表す動詞と操作対象の名詞がハイフンで結ばれており、コマンド名を見るだけで機能を推測できます。
- Get-Service:サービスの一覧を取得する
- Stop-Process:プロセスを停止する
- New-Item:新しいファイルやフォルダを作成する
この規則があるおかげで、「Get-ServiceがあるならStart-Serviceもあるだろう」といった推測が可能です。
以下は、PowerShellで頻繁に使用される主な動詞の一覧です。
| 動詞 | 意味 | 代表的なコマンドレット |
|---|---|---|
| Get | 情報を取得する | Get-Process, Get-Service |
| Set | 値を設定・変更する | Set-Location, Set-Content |
| New | 新しく作成する | New-Item, New-Object |
| Remove | 削除する | Remove-Item, Remove-Variable |
| Start | 開始する | Start-Process, Start-Service |
| Stop | 停止する | Stop-Process, Stop-Service |
| Restart | 再起動する | Restart-Service, Restart-Computer |
| Export | 外部に出力する | Export-Csv, Export-Clixml |
| Import | 外部から読み込む | Import-Csv, Import-Module |
利用可能な動詞の完全な一覧は、以下のコマンドで確認できます。
Get-Verbオブジェクトベースのデータ操作とパイプラインの基本
従来のシェルが「テキスト(文字列)」をやり取りしていたのに対し、PowerShellは 「オブジェクト」 をやり取りします。オブジェクトとは、データとその属性(プロパティ)、および操作(メソッド)がセットになった構造体です。
例えば、Get-Serviceでサービス情報を取得した場合、結果は単なる文字の羅列ではなく「サービス名(Name)」「状態(Status)」「表示名(DisplayName)」といった属性を持った構造化されたデータです。
# 停止中のサービスだけを抽出するGet-Service | Where-Object { $_.Status -eq "Stopped" }パイプライン( | ) を使ってオブジェクトを次のコマンドレットに渡す際、テキストを解析(パース)する手間が不要です。そのためエラーが起きにくく、効率的なデータ操作が可能になります。
この「オブジェクト指向」の仕組みこそが、Windows管理においてPowerShellコマンドレットが不可欠とされる最大の理由です。
知っておきたい主要コマンドレット一覧
PowerShellには数千を超えるコマンドレットが存在しますが、すべてを覚える必要はありません。日常的なWindows管理で特によく使われるコマンドレットをカテゴリ別に紹介します。
ファイル・ディレクトリ操作のコマンドレット
エクスプローラーで行う操作の多くは、コマンドレットで代替できます。
| コマンドレット | 説明 | エイリアス |
|---|---|---|
| Get-ChildItem | ファイルやフォルダの一覧を取得 | ls, dir, gci |
| Set-Location | 作業ディレクトリを変更 | cd, sl |
| Get-Location | 現在のディレクトリパスを表示 | pwd, gl |
| Get-Content | ファイルの内容を読み込む | cat, gc, type |
| Set-Content | ファイルに内容を書き込む | sc |
| Copy-Item | ファイルやディレクトリをコピー | cp, copy |
| Move-Item | ファイルやディレクトリを移動 | mv, move |
| Remove-Item | ファイルやディレクトリを削除 | rm, del |
| New-Item | 新しいファイルやフォルダを作成 | ni |
| Rename-Item | ファイル名を変更 | ren |
以下は、特定の拡張子のファイルを再帰的に検索する実践例です。
# Cドライブのドキュメントフォルダからすべてのテキストファイルを検索Get-ChildItem -Path C:\Users\$env:USERNAME\Documents -Filter "*.txt" -Recurseシステム情報・プロセス管理のコマンドレット
システムの稼働状況を確認したり、プロセスやサービスを制御する際に使用します。
| コマンドレット | 説明 |
|---|---|
| Get-Process | 実行中のプロセス一覧を取得し、CPUCPU [シーピーユー]Central Processing Unit。コンピュータの頭脳となる中央演算処理装置・メモリ使用量を確認 |
| Stop-Process | 指定したプロセスを強制終了 |
| Get-Service | Windowsサービスの実行状態(実行中・停止中など)を確認 |
| Start-Service | 停止しているサービスを開始 |
| Restart-Service | サービスを再起動 |
| Get-ComputerInfo | OSOS [オーエス]Operating System。基本ソフトウェア・ハードウェア情報を一括取得 |
| Test-Connection | ネットワーク疎通確認(pingと同等) |
# メモリ使用量が多い上位5つのプロセスを表示Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 5 Name, @{N='MemoryMB';E={[math]::Round($_.WorkingSet64/1MB,1)}}データのフィルタリングと加工のコマンドレット
PowerShellコマンドレットの真骨頂は、取得した大量のデータから必要なものだけを抽出・加工する操作です。
| コマンドレット | 役割 | 使用例 |
|---|---|---|
| Where-Object | 条件に一致するデータのみを抽出 | 停止中のサービスだけを表示 |
| Select-Object | 特定のプロパティ(列)だけを表示 | プロセス名とIDだけを取得 |
| Sort-Object | データを並び替える | ファイルをサイズ順に並べる |
| ForEach-Object | 各オブジェクトに対して処理を実行 | 一括リネームなど |
| Measure-Object | 合計・平均・最大・最小値を計算 | ファイルの合計サイズを算出 |
| Export-CsvCSV [シーエスブイ]Comma-Separated Values。カンマ区切りのデータ形式 | 結果をCSVファイルに出力 | レポート作成 |
これらのコマンドレットを パイプライン( | ) で繋ぐことで、「特定の条件に合うファイルを検索し、それをCSVに出力する」といった複雑な処理を一行で記述できます。
# 30日以上更新されていないファイルを検索してCSVに出力Get-ChildItem -Path C:\Logs -Recurse | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Select-Object Name, FullName, LastWriteTime, Length | Export-Csv -Path C:\report.csv -NoTypeInformation -Encoding UTF8コマンドレットの調べ方と効率的な学習法
PowerShellには数千のコマンドレットがあるため、すべてを暗記する必要はありません。重要なのは、目的のコマンドを効率よく見つけ出し、その使い方を調べる 「探し方」 をマスターすることです。
Get-Commandで目的のコマンドを検索する
「特定の操作をしたいが、コマンド名が分からない」という時に使うのがGet-Commandです。ワイルドカード(*)を使って、曖昧な記憶からでも目的のコマンドレットを見つけ出せます。
# 「Service」に関連するコマンドレットを検索Get-Command *Service*
# 「Network」に関連する名詞を持つコマンドレットを検索Get-Command -Noun Network*
# 「Get」動詞のコマンドレットだけを検索Get-Command -Verb Get「動詞」や「名詞」の一部からコマンドレットを検索できるため、新しいモジュールを導入した際にもすぐに使い始められます。
Get-HelpとGet-Memberで使い方を確認する
コマンドレットを見つけた後は、その使い方や返されるデータの構造を確認しましょう。以下の2つをセットで覚えると効率的です。
- Get-Help:コマンドレットのマニュアルを表示します。
-Examplesパラメータを付けると、具体的な使用例を確認できます。 - Get-Member:コマンドレットが返す「オブジェクト」のプロパティ(属性)やメソッド(操作)を表示します。
# Get-Processの使用例を表示Get-Help Get-Process -Examples
# Get-Processが返すオブジェクトの構造を確認Get-Process | Get-Memberこれらを活用すれば、Webで検索しなくても最新かつ正確な情報をコンソール上で取得できます。
エイリアスの活用と注意点
PowerShellでは、多くのコマンドレットに短い**エイリアス(別名)**が設定されています。LinuxLinux [リナックス / ライナックス]オープンソースのOSカーネルやコマンドプロンプトのコマンドがそのままPowerShellでも使えるのは、このエイリアスの仕組みのおかげです。
| エイリアス | 正式なコマンドレット | 由来 |
|---|---|---|
ls, dir | Get-ChildItem | Linux / CMD |
cd | Set-Location | Linux / CMD |
cat, type | Get-Content | Linux / CMD |
cp, copy | Copy-Item | Linux / CMD |
rm, del | Remove-Item | Linux / CMD |
pwd | Get-Location | Linux |
cls | Clear-Host | CMD |
echo | Write-Output | Linux / CMD(※) |
※ echoはWindows環境ではWrite-Outputのエイリアスとして動作しますが、Linux/macOSmacOS [マックオーエス]Appleが開発するMac用のオペレーティングシステム上のPowerShell 7ではOSネイティブの/bin/echoが呼び出される場合があり、挙動が異なります。
対話的に操作する際はエイリアスが便利ですが、スクリプトファイル内では正式名を使うのがベストプラクティスです。エイリアスは環境(Windows / Linux / macOS)によって異なる場合があり、特にクロスプラットフォームで利用する際にはエイリアス競合の原因になります。正式名の方が可読性・保守性にも優れています。
現在設定されているエイリアスの一覧は、以下のコマンドで確認できます。
# すべてのエイリアス一覧を表示Get-Alias
# 特定のエイリアスの正式名を確認Get-Alias lsPowerShellコマンドレット習得のまとめとよくある質問
今回のまとめ:振り返りチェックリスト
- 「動詞-名詞」の規則性を意識する: 未知の操作でも「やりたいこと(動詞)」と「対象(名詞)」を組み合わせれば、コマンドレット名を予測・検索できる
- 自力で解決する3つの武器を使いこなす: コマンドを探す
Get-Command、使い方を知るGet-Help、データ構造を知るGet-Memberをセットで覚えるのが上達の近道- パイプラインで「オブジェクト」を繋ぐ: 単なるテキストではなく構造化されたデータの塊(オブジェクト)を渡す仕組みを理解し、
Where-Objectなどで効率的に情報を絞り込む- アドバイス: まずはシステム設定を変更しない
Get-系のコマンドレット(Get-ProcessやGet-ChildItemなど)を実行して、PowerShellが返すデータの扱いに慣れることから始めてみてください
PowerShellコマンドレットは、Windows管理を効率化するための強力なツールです。「動詞-名詞」の命名規則と、テキストではなくオブジェクトをやり取りする仕組みを理解すれば、複雑なシステム操作も直感的に行えるようになります。
よくある質問(FAQ)
PowerShellを学び始めたばかりの方がよく抱く疑問をまとめました。
| 質問 | 回答 |
|---|---|
| コマンドプロンプト(cmd.exe)と何が違いますか? | コマンドプロンプトは「テキスト」を扱いますが、PowerShellは「オブジェクト」を扱います。 データの抽出や加工が格段に容易になり、パイプラインでの連携も正確です。 |
| コマンドレットの名前が長くて入力が大変ではないですか? | エイリアス(別名) でlsやdirなどの短い名前が使えます。また、 Tabキーによる補完機能 も強力なので、入力の手間はほとんどありません。 |
| どのように学習を進めるのが効率的ですか? | まずはGet-Commandで使えるコマンドを調べ、Get-系のコマンドレットで実際にデータを取得してみるのが効果的です。システムを変更しないため安全に練習できます。 |
| Windows PowerShellとPowerShell(PowerShell 7)の違いは? | Windows PowerShellは.NET Frameworkベースでバージョン5.1が最終版です。 PowerShell 7以降は.NET上で動作し、クロスプラットフォーム(Windows / macOS / Linux)で利用できます。 |
PowerShellの習得は、ITエンジニアとしてのスキルを大きく広げる一歩です。基本を身につければ、クラウド環境(Azure、AWSAWS [エーダブリュエス]Amazon Web Services。Amazonのクラウドサービス)やサーバー管理でも幅広く応用できます。まずは身近なファイルの整理やサービスの状態確認から試してみてください。
PowerShellのスクリプト実行でエラーが出た場合は、以下の記事も参考にしてください。

【PowerShell】スクリプトの実行が無効でコマンドが実行できない場合の対処法
WindowsのPowerShellでnpm等のコマンドを実行しようとした場合に、スクリプトの実行が無効になっている旨のエラーが出た際の対処方法を紹介します。デフォルトではスクリプトの実行が許可されていません。実行ポリシーの種類と変更する手順を紹介します。
参考文献
- PowerShell コマンドレットの概要 | Microsoft Learn
- PowerShell コマンドの承認済み動詞 | Microsoft Learn
- PowerShell 101 - PowerShell の概要 | Microsoft Learn
以上で本記事の解説を終わります。
よいITライフを!
人気記事
- 1
- 2
- 3
- 4
- 5
思考の整理というテーマを、実務ですぐに使える具体的な「技術」として落とし込んだ一冊です。