【PowerShell】コマンドレットとは?基本と使い方を徹底解説

【PowerShell】コマンドレットとは?基本と使い方を徹底解説

PR Amazonのアソシエイトとして、ITナレッジライフは適格販売により収入を得ています。

記事の文字数:5,858

PowerShellコマンドレットの基本を初心者向けに解説。「動詞-名詞」の命名規則やオブジェクト操作の仕組み、よく使う主要コマンド一覧、Get-CommandやGet-Helpによる効率的な調べ方まで、実務で役立つ知識を網羅的にまとめました。

ITエンジニアにお勧めの本 ↗

おすすめ

エンジニアが知っておきたい思考の整理術 複雑な情報を【理解する】【伝える】テクニック

難易度
実用性
図解

思考の整理というテーマを、実務ですぐに使える具体的な「技術」として落とし込んだ一冊です。

ベストセラー

世界一流エンジニアの思考法

難易度
実用性
思考法

技術スキル以上に大切な「考え方」をアップデートできる。世界基準の効率的な仕事術が学べます。

文系社会人のためのIT資格の歩き方: 文系のあなたに最適な道をご提案します (YKcreate kiki)

難易度
実用性
キャリア度

ロードマップが非常に明確。キャリアプランを見据えた、無駄のない学習順序を提案してくれます。

エンジニアを説明上手にする本 相手に応じた技術情報や知識の伝え方

難易度
実用性
コミュ力

「伝える技術」もエンジニアの重要なスキル。相手の視点に立った、具体的な説明のコツが満載です。

技術広報入門 ー テックブログから始めるエンジニアカルチャーのつくり方

難易度
実用性
独自性

テックブログを入口にエンジニア組織の文化をどう設計し、育てていくかという実践論が学べます。

PowerShellのコマンドレットを使いこなしたいけれど、コマンドの多さに戸惑っていませんか?PowerShellコマンドレットは「動詞-名詞」という一貫した命名規則で構成されており、ルールさえ覚えれば初心者でも必要なコマンドを素早く見つけられます。

本記事では、コマンドレットの基本的な仕組みから、実務でよく使う主要コマンド一覧、効率的な調べ方までを網羅的に解説します。この記事を読めば、迷わずコマンドを使いこなし、Windows管理の自動化を始められるようになります。

記事のポイント

  • PowerShellコマンドレットは「動詞-名詞」という直感的なルールで構成されており、初心者でも機能が推測しやすい
  • 従来のコマンドと異なりデータを「オブジェクト」として扱うため、パイプラインで効率的な情報の抽出・加工ができる
  • Get-CommandGet-Helpを活用すれば、膨大なコマンドの中から必要な機能や使い方を即座に調べられる
  • ファイル操作やシステム管理などの頻出コマンドレットを覚えれば、Windowsの定型業務を自動化できる
  • エイリアスの使い分けを理解すれば、素早い操作と保守性の高いスクリプト作成を両立できる

PowerShellコマンドレットとは?基本の仕組みを理解しよう

Windowsのシステム管理や自動化を行う上で、 PowerShellコマンドレット(Cmdlet) は欠かせない存在です。従来のコマンドプロンプトとは異なり、.NETプラットフォーム(Windows PowerShell 5.1では.NET Framework、PowerShell 7以降では.NET)をベースに構築されているため、高度なシステム操作を直感的な構文で実行できます。

ここではまず、コマンドレットの定義や独自の構造、そしてなぜこれほど強力なのかを解説します。

コマンドレットの定義と従来のコマンドとの違い

コマンドレットは、PowerShell環境に組み込まれた単一機能のコマンドです。従来のcmd.exeで使用されていた外部コマンド(ipconfigpingなど)とは、以下のような明確な違いがあります。

項目従来のコマンド (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

利用可能な動詞の完全な一覧は、以下のコマンドで確認できます。

Terminal window
Get-Verb

オブジェクトベースのデータ操作とパイプラインの基本

従来のシェルが「テキスト(文字列)」をやり取りしていたのに対し、PowerShellは 「オブジェクト」 をやり取りします。オブジェクトとは、データとその属性(プロパティ)、および操作(メソッド)がセットになった構造体です。

例えば、Get-Serviceでサービス情報を取得した場合、結果は単なる文字の羅列ではなく「サービス名(Name)」「状態(Status)」「表示名(DisplayName)」といった属性を持った構造化されたデータです。

Terminal window
# 停止中のサービスだけを抽出する
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

以下は、特定の拡張子のファイルを再帰的に検索する実践例です。

Terminal window
# Cドライブのドキュメントフォルダからすべてのテキストファイルを検索
Get-ChildItem -Path C:\Users\$env:USERNAME\Documents -Filter "*.txt" -Recurse

システム情報・プロセス管理のコマンドレット

システムの稼働状況を確認したり、プロセスやサービスを制御する際に使用します。

コマンドレット説明
Get-Process実行中のプロセス一覧を取得し、CPUCPU [シーピーユー]Central Processing Unit。コンピュータの頭脳となる中央演算処理装置・メモリ使用量を確認
Stop-Process指定したプロセスを強制終了
Get-ServiceWindowsサービスの実行状態(実行中・停止中など)を確認
Start-Service停止しているサービスを開始
Restart-Serviceサービスを再起動
Get-ComputerInfoOSOS [オーエス]Operating System。基本ソフトウェア・ハードウェア情報を一括取得
Test-Connectionネットワーク疎通確認(pingと同等)
Terminal window
# メモリ使用量が多い上位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に出力する」といった複雑な処理を一行で記述できます。

Terminal window
# 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です。ワイルドカード(*)を使って、曖昧な記憶からでも目的のコマンドレットを見つけ出せます。

Terminal window
# 「Service」に関連するコマンドレットを検索
Get-Command *Service*
# 「Network」に関連する名詞を持つコマンドレットを検索
Get-Command -Noun Network*
# 「Get」動詞のコマンドレットだけを検索
Get-Command -Verb Get

「動詞」や「名詞」の一部からコマンドレットを検索できるため、新しいモジュールを導入した際にもすぐに使い始められます。

Get-HelpとGet-Memberで使い方を確認する

コマンドレットを見つけた後は、その使い方や返されるデータの構造を確認しましょう。以下の2つをセットで覚えると効率的です。

  1. Get-Help:コマンドレットのマニュアルを表示します。-Examplesパラメータを付けると、具体的な使用例を確認できます。
  2. Get-Member:コマンドレットが返す「オブジェクト」のプロパティ(属性)やメソッド(操作)を表示します。
Terminal window
# Get-Processの使用例を表示
Get-Help Get-Process -Examples
# Get-Processが返すオブジェクトの構造を確認
Get-Process | Get-Member

これらを活用すれば、Webで検索しなくても最新かつ正確な情報をコンソール上で取得できます。

エイリアスの活用と注意点

PowerShellでは、多くのコマンドレットに短い**エイリアス(別名)**が設定されています。LinuxLinux [リナックス / ライナックス]オープンソースのOSカーネルやコマンドプロンプトのコマンドがそのままPowerShellでも使えるのは、このエイリアスの仕組みのおかげです。

エイリアス正式なコマンドレット由来
ls, dirGet-ChildItemLinux / CMD
cdSet-LocationLinux / CMD
cat, typeGet-ContentLinux / CMD
cp, copyCopy-ItemLinux / CMD
rm, delRemove-ItemLinux / CMD
pwdGet-LocationLinux
clsClear-HostCMD
echoWrite-OutputLinux / CMD(※)

echoはWindows環境ではWrite-Outputのエイリアスとして動作しますが、Linux/macOSmacOS [マックオーエス]Appleが開発するMac用のオペレーティングシステム上のPowerShell 7ではOSネイティブの/bin/echoが呼び出される場合があり、挙動が異なります。

対話的に操作する際はエイリアスが便利ですが、スクリプトファイル内では正式名を使うのがベストプラクティスです。エイリアスは環境(Windows / Linux / macOS)によって異なる場合があり、特にクロスプラットフォームで利用する際にはエイリアス競合の原因になります。正式名の方が可読性・保守性にも優れています。

現在設定されているエイリアスの一覧は、以下のコマンドで確認できます。

Terminal window
# すべてのエイリアス一覧を表示
Get-Alias
# 特定のエイリアスの正式名を確認
Get-Alias ls

PowerShellコマンドレット習得のまとめとよくある質問

今回のまとめ:振り返りチェックリスト

  • 「動詞-名詞」の規則性を意識する: 未知の操作でも「やりたいこと(動詞)」と「対象(名詞)」を組み合わせれば、コマンドレット名を予測・検索できる
  • 自力で解決する3つの武器を使いこなす: コマンドを探すGet-Command、使い方を知るGet-Help、データ構造を知るGet-Memberをセットで覚えるのが上達の近道
  • パイプラインで「オブジェクト」を繋ぐ: 単なるテキストではなく構造化されたデータの塊(オブジェクト)を渡す仕組みを理解し、Where-Objectなどで効率的に情報を絞り込む
  • アドバイス: まずはシステム設定を変更しないGet-系のコマンドレット(Get-ProcessGet-ChildItemなど)を実行して、PowerShellが返すデータの扱いに慣れることから始めてみてください

PowerShellコマンドレットは、Windows管理を効率化するための強力なツールです。「動詞-名詞」の命名規則と、テキストではなくオブジェクトをやり取りする仕組みを理解すれば、複雑なシステム操作も直感的に行えるようになります。

よくある質問(FAQ)

PowerShellを学び始めたばかりの方がよく抱く疑問をまとめました。

質問回答
コマンドプロンプト(cmd.exe)と何が違いますか?コマンドプロンプトは「テキスト」を扱いますが、PowerShellは「オブジェクト」を扱います。
データの抽出や加工が格段に容易になり、パイプラインでの連携も正確です。
コマンドレットの名前が長くて入力が大変ではないですか?エイリアス(別名)lsdirなどの短い名前が使えます。
また、 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】スクリプトの実行が無効でコマンドが実行できない場合の対処法
ITナレッジライフ

【PowerShell】スクリプトの実行が無効でコマンドが実行できない場合の対処法

WindowsのPowerShellでnpm等のコマンドを実行しようとした場合に、スクリプトの実行が無効になっている旨のエラーが出た際の対処方法を紹介します。デフォルトではスクリプトの実行が許可されていません。実行ポリシーの種類と変更する手順を紹介します。

参考文献


以上で本記事の解説を終わります。
よいITライフを!
ITナレッジライフ 運営者
この記事を書いた人

Z (ITナレッジライフ)

現役のITエンジニア。Linux、プログラミング、IT用語など、日々の業務で得た「痒いところに手が届く」技術情報を発信しています。

プロフィールと編集ポリシーを見る

ITエンジニアにお勧めの本 ↗

おすすめ

エンジニアが知っておきたい思考の整理術 複雑な情報を【理解する】【伝える】テクニック

難易度
実用性
図解

思考の整理というテーマを、実務ですぐに使える具体的な「技術」として落とし込んだ一冊です。

人気記事


記事を評価

Thanks!
目次
Scroll to Top