16の必須PowerShellコマンド

Featured Top Essential Powershell Commands

Windows PowerShellは、.NETフレームワークに基づいた強力なアプリです。これは cmdletと呼ばれるPowerShellコマンドに依存しています。それらを特定の順序で組み合わせることで、PowerShellウィンドウからほぼすべての操作を実行できます。その仕組みを説明するために、最も重要なPowerShellコマンドを厳選しました。

知っておくと便利: Windowsが「Powershell.exe」を見つけられない場合は、何をすべきかを学びましょう。

目次

  • PowerShellコマンドの使い方
  • 必須PowerShellコマンド
    1. Clear-HostまたはCls
    1. Convert-to-HTML
    1. Get-Command
    1. Get-Help
    1. Get-Process
    1. Get-Service
    1. Install-ModuleまたはInstall-Script
    1. mkdir, md, rmdir
    1. New-Item
    1. Remove-Item
    1. Set-ExecutionPolicy
    1. Select-ObjectおよびSort-Object
    1. Start-およびStop-Process
    1. Suspend-およびResume-Service
    1. Test-Path
    1. Wait-Process
  • その他の必須PowerShellコマンド
  • よくある質問

PowerShellコマンドの使い方

cmdletを使用し始めるには、検索メニューからAdministratorモードでPowerShellを起動する必要があります。

Open PowerShell in Administrator mode from Windows 11 search.

必須PowerShellコマンド

WindowsのPowerShellは、単なるコマンドラインインターフェースではなく、任意のアプリケーションやプロセスを実行できるスクリプティングおよびプログラミングウィンドウでもあります。数百のcmdletがある中で、始めるためには最も重要なものだけを学ぶ必要があります。

1. Clear-HostまたはCls

タイプ中にミスをしたり、予定通りにいかないことがありますか?幸いなことに、PowerShellにはやり直しができます。便利なclear-hostコマンドは、表示から全てのテキストをクリアできます。画面の任意の行にこのコマンドを入力すると、すべてが瞬時に消えます。

Clear host command to remove entire text in PowerShell window.

また、Command Promptで頻繁に使用される単純なclsコマンドもPowerShellで使用できます。これら2つのクリアテキストコマンドは、エラーメッセージに遭遇したときに便利です。

Entering cls command below error message to remove the entire text in PowerShell.

Command PromptやPowerShellウィンドウでタイプミスを避けるために、コマンドをコピー&ペーストして効率を向上させることができます。

ヒント: このガイドに示されているように、Windowsの更新プログラムを隠すためにPowerShellを使用します。

2. Convert-to-HTML

長いHTMLの文字列は、混雑したPowerShellのスクリーンショットを眺めるよりも美しいです。また、スクリプトエラーや他のPowerShellイベントを技術的でないチームメンバーと共有する際にも便利です。

すべてのPowerShellコンポーネントは.NETオブジェクトを使用しており、それをPowerShellウィンドウで表示できます。これらをフルブラウザウィンドウで表示するには、Convert-to-HTML cmdletを使用します。以下の例は、Web上で全てのPowerShellエイリアスを表示するためのものです。「Invoke-Item」の前に別の行を使うことを忘れないでください。

Get-Alias|ConvertTo-Html|Out-File aliases.htm  
Invoke-Item aliases.htm

Convert-to-HTML command in PowerShell to display aliases in a web page.

HTML変換コマンドを実行すると、PowerShellは出力ファイルを別のアプリケーションで開くように求めます。ブラウザを使うと、エイリアスなどのオブジェクトのリストが表示されます。

A complete list of PowerShell aliases viewable on a web browser.

3. Get-Command

主に2種類のコマンドがあります: エイリアスと関数です。PowerShellエイリアスは、関数やcmdletのニックネームとして機能します。Windowsには、デフォルトでいくつかのエイリアスが保存されており、これをGet-Commandを使って取得できます。また、自分自身のエイリアスを作成することもできます。

List of aliases under Get command in PowerShell.

PowerShellにおけるもう一つのコマンドタイプは関数です。これらは、承認された動詞(「get」など)と単純な名詞(「StorageNode」など)を使用しています。

List of functions displayed under Get-command in Powershell.

私たちは、環境変数として知られるものを使用して、ローカルコンピュータの名前を表示するために「Select-object」関数を使用しています。

$env:computername |Select-Object

Getting computer name using Select-Object function and environment variable in PowerShell.

関数は、高度なPowerShellコーディングの出発点です。Start-processなどの関数を、パラメーターや変数と組み合わせて自分自身のバッチスクリプトを作成し、一連のタスクを実行できます。

4. Get-Help

PowerShellには、自動学習トラブルシューティングcmdletであるGet-Helpがあり、すべてのクイック修正とヘルプ記事を1つのウィンドウに表示します。任意の出力の最後にこのコマンドを入力して、さまざまなモジュールに対するヘルプを取得できます。ヘルプコンテンツの更新版を許可するためにYを押す必要があるかもしれません。

PowerShell updating help for various modules after Get-Help command.

Get-helpを通じてさまざまなヘルプオプションがあります。たとえば、Get-processが何をするか、およびその正確な構文を知りたい場合は、以下のように入力します:

Get-HelpGet-Process

Various examples displayed in PowerShell window for get-help command.

ヒント: キーロガーがPCの活動を監視していることを心配していますか?Windowsでキーロガーを検出する方法を学びましょう。

5. Get-Process

Get-Processは、ローカルデバイスまたはリモートコンピュータ上のすべてのプロセスの完全なリストをまとめる、必須のPowerShellコマンドです。

Get-Process command in PowerShell lists all the computer processes.

詳細なプロセス情報が必要な場合は、プロセスID(PID)やプロセス名などの他のパラメータを指定する必要があります。

Specifying process name in Get-Process command in PowerShell.

見つけたいプロセスを定義する際に含めることができる特定のパラメータは多数あります:

  • ファイルサイズをMB単位で指定してプロセスをリスト
  • 優先度に基づいてプロセスをリスト
  • プロセスの所有者を見つける

6. Get-Service

Windowsコンピュータには、多くの実行中のプログラムとプロセスがあります。タスクマネージャーで直接見ることもできますが、Get-serviceを使用すれば、後でHTMLに変換できる完全なリストを簡単に見ることができます。

Get-service command in PowerShell window with a full list of services.

必要なサービスの正確な名前を思い出せない場合は、覚えているいくつかの文字とともに、ワイルドカード記号(*)を使用できます。

Get-service"xyz*"

Get-service with initials typed in PowerShell window.

Get-Serviceと一緒に機能するいくつかの一般的なフラグには、-DisplayName-DependentServices-InputObject、および-RequiredServicesがあります。

7. Install-ModuleまたはInstall-Script

PowerShellは、Microsoft Teams、McAfee Security、Bing Translator、最新のXboxゲームなど、Windowsソフトウェア用のソフトウェアパッケージをインストールする最も安全なオプションの1つです。すべてのユーザーに対してPowerShellでサポートされているソフトウェアの完全なリストを取得するには、次のように入力します:

Get-AppxPackage -AllUsers

Get AppxPackage command to see the whole list of packages in PowerShell.

より良い方法は、PowerShell Galleryで希望のパッケージを検索することです。これは最新のソフトウェアパッケージのワンストップリソースです。それを見つけたら、Install-moduleInstall-Script、またはInstall-Packageなどのコマンドを入力します。以下は、Minesweeperゲームのインストールを示しています。

Install-Script -Name Minesweeper

Installing Minesweeper game from PowerShell in Windows.

パッケージがPowerShellを通じてインストールされるまで、数秒または数分待ってください。後でWindowsで利用できるようになります。

Minesweeper package installation in process.

もう1つの便利なコマンドはFind-packageで、これはコンピュータやWeb上のソフトウェアパッケージを検索します。

ヒント: プログラムのインストールや更新を行うためにWindowsパッケージマネージャーも使用できます。

8. mkdir, md, rmdir

mkdirは、ネイティブのPowerShellコマンドではありません。ただし、これはディレクトリを作成するために広く使用されるnew-itemのエイリアスです。この構文はDOSやLinuxで非常に人気があります。mkdirをお好みの名前と一緒に使用すると、空のフォルダーが作成されます。

mkdir "空のフォルダー名"

PowerShellを、新しく作成したフォルダーを指すようにするには、単純なcdコマンドを使用します。

cd "新しく作成したフォルダー名"

Creating new directory using mkdir command in PowerShell and pointing to that new directory using cd.

新しく作成されたフォルダーは常にC:\Windows\System32パスに位置しますが、cdを使用して別のフォルダーを指すこともできます。

New folder created using PowerShell command visible in File Explorer System32.

mkdirmdに置き換えても、上記と同様の目的で使用できます。任意のディレクトリの内容を削除するには、rmdir(remove directory)コマンドを使用します:

rmdir "空のコンテンツのフォルダー名"

md and rmdir commands used in PowerShell window to create and remove empty folders.

9. New-Item

mkdirmdのようなエイリアスとは異なり、New-itemはPowerShellで新しいアイテムを作成し、その値を設定するために使用される公式のcmdletです。ファイルやフォルダーを作成することに加えて、レジストリキーやエントリを作成するためにも使用できます。

  1. New-itemコマンドを使用して新しいディレクトリを作成するには、次のように入力します:
New-item -Path "ディレクトリパス" -Name "お好みの名前" -ItemType "directory"
  1. ディレクトリが作成されたら、New-itemを使ってそのフォルダー内に新しいファイルを配置できます。
New-item -Path "作成されたディレクトリパス" -Name "ファイル名.txt" -ItemType "file" -Value "お好みのテキストを挿入"

New-item command in use in PowerShell to create new folder and file with text.

  1. 新しく作成されたファイルは、その宛先フォルダーで見つけることができます。

Essential Powershell Commands New Item In File Explorer

10. Remove-Item

特定のフォルダーから、.TXT、.DOC、.PDF、.WMVなどの拡張子を持つすべてのファイルを削除したいですか?まず、cdを使用して正確なフォルダーのパスを指し示し、次に以下に示すcmdlet Remove-Itemを使用します。

Remove-Item * -Include *(filetype) -Exclude *(any variable or number)

Remove item from a folder in PowerShell.

上記の方法は、非表示または読み取り専用のファイルを特定して削除したり、特殊文字のあるファイルを削除するのに非常に便利です。

知っておくと便利: PCからファイルを削除できなくて困っていますか?Windowsで削除できないファイルを強制削除する方法を学びましょう。

11. Set-ExecutionPolicy

セキュリティ上の理由から、PowerShellには構成ファイル、スクリプト、および他のパラメータに影響を与える独自の実行ポリシーがあります。このセーフティ機能は、Set-executionPolicyコマンドを使用して実行でき、既存のアイテムを上書きする-forceなどのフラグが必要です。以下の構文に従います。

Set-ExecutionPolicy  
[-ExecutionPolicy]  
[[-Scope]]  
[-Force]  
[-WhatIf]  
[-Confirm]  
[]

たとえば、Set-ExecutionPolicyコマンドを使用してChocolateyソフトウェアをインストールする様子は、以下のコードのようになります。一度実行されると、公式のChocolateyソフトウェアがあなたのコンピュータにダウンロードされ、インストールされます。

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Installing Chocolatey in PowerShell using Set-ExecutionPolicy command.

12. Select-ObjectおよびSort-Object

フォルダーまたはサブフォルダーに多くのファイルと拡張子がある場合は、あらかじめ定められたプロパティに基づいてそれらを昇順または降順にソートまたは選択することがあるかもしれません。これを実現するのが、Sort-ObjectおよびSelect-Objectのcmdletです。これにより、複数のオブジェクトを一度に並べ替えることができます。

ソートおよび選択は、異なるフォルダー内の任意のファイルや、コンピュータ上の既存のプロセスにも適用できます。以下は、作業セット(WS)サイズに基づいて最も重要な10のプロセスをソートおよび選択する例です。

Get-process | Sort-Object -Property WS | Select-Object -Last "アイテム数"

Select and sort objects based on the predefined Get-process in PowerShell.

ソートおよび選択は、さまざまなファイルの履歴情報、Notepadファイルに含まれるすべてのリストアイテムの並べ替え、コンピュータ上のさまざまなイベントのソートなど、他のさまざまなパラメータにも使用できます。

13. Start-およびStop-Process

Windowsで新しいプロセスを開始するか、既存のプロセスを停止したい場合、PowerShell cmdletを素早く使ってその目的を達成できます。

プロセスをすばやく終了させるには、Stop-Process cmdletを使用します。次の例は、WordPadのプロセスを終了させる方法を示しています。

Stop-process -Name "プロセスまたはアプリケーション名"

Stopping WordPad process from PowerShell in Windows.

同様に、PowerShellウィンドウから直接新しいアプリケーションを起動するには、Start-process cmdletと-FilePathフラグを入力します。

Start-Process -FilePath "アプリケーション名"

Start process in PowerShell to open WordPad application.

ヒント: Windowsでバックグラウンドアプリやプロセスの実行を停止してリソースを食うことなくする方法を学びましょう。

14. Suspend-およびResume-Service

実行中のサービスを開始または停止するのではなく、直接一時停止することもできます。Suspend-service cmdletの使用は簡単で、現在使用していないサービスのRAMとCPUの使用を減らす手助けをします。

注意: 一時停止するサービスの名前を取得するにはGet-serviceを使用できます。

Suspend-service -DisplayName "サービスの完全名"

Essential Powershell Commands Suspend Service

終了したサービスは、簡単なResume-serviceコマンドで後で再開できます。システムに悪影響を与えずに一時停止できるサービスを把握できない場合は、次のコマンドを使用します:

Get-Service | Where-Object { $_.CanPauseAndContinue -eq "True" } | Suspend-Service -Confirm

Suspend services which can be suspended in PowerShell window.

15. Test-Path

プログラミングでファイルパスエラーを避けたい場合、文法内のファイルパスが正確であることを確認する必要があります。File Explorerで確認することは常に可能ですが、これをより正確に確認するには、指定されたパスが存在するかどうかを「True」または「False」で答えるTest-path cmdletを使用します。

Test-Path -Path "パス名"

Essential Powershell Commands Testpath

このコマンドを修正して、特定のファイルの可用性をテストし、レジストリパスが正確かどうかを確認し、コンピュータ上の特定のファイルタイプ以外の他のファイルが存在するかどうかを判断できます。

16. Wait-Process

複数のプロセスが同時に実行されている場合、それらのうちの1つ以上が停止するのを待たなければならないことがあります。Wait-Process cmdletが大いに役立ちます。PowerShellがプロセスが停止するまで待つタイムアウトを指定できます。

Wait-Process -Name "プロセス名" -Timeout (秒数)

Essential Powershell Commands Wait Process

その他の必須PowerShellコマンド

上記のPowerShellコマンドに加えて、次のcmdletや関数を学ぶことも役立ちます:

  • Echoは、PowerShellコンソールに任意の値を出力するために使用されるcmdletです。
  • Get-Hostは、WindowsでPowerShellをホストしているプログラムの詳細を提供します。
  • Test-JSONは、文字列が有効なJSONオブジェクトであるかどうかをテストするために使用される高度なcmdletです。
  • Trace-commandは、式やコマンド全体をトレースして含まれているパラメータやフラグを見つけます。
  • Write-output は、名前が示すように、コンソールウィンドウで最後のコマンドの出力を提供します。

ヒント: マルウェアのように見えるこれらの正当なWindowsプロセスに精通し、システムから削除しないようにしましょう。

よくある質問

「PowerShellスクリプトがcmdletの名前として認識されない」というエラーをどのように解決できますか?

PowerShellがcmdletの名前を認識しない場合、それはPath変数が正しく設定されていない可能性があります。無効なフォルダパスを修正することで、Path変数のエラーを修正できます。

PowerShellでエラー出力を変数としてキャプチャするにはどうすればよいですか?

PowerShellには、さまざまなcmdletを入力するときにすべてのエラー出力をキャプチャするために設計されたエラー変数パラメータ$ErrorVariableがあります。これらはトラブルシューティングに使用できます。