16の必須PowerShellコマンド

Windows PowerShellは、.NETフレームワークに基づいた強力なアプリです。これは cmdletと呼ばれるPowerShellコマンドに依存しています。それらを特定の順序で組み合わせることで、PowerShellウィンドウからほぼすべての操作を実行できます。その仕組みを説明するために、最も重要なPowerShellコマンドを厳選しました。
知っておくと便利: Windowsが「Powershell.exe」を見つけられない場合は、何をすべきかを学びましょう。
目次
- PowerShellコマンドの使い方
- 必須PowerShellコマンド
- Clear-HostまたはCls
- Convert-to-HTML
- Get-Command
- Get-Help
- Get-Process
- Get-Service
- Install-ModuleまたはInstall-Script
- mkdir, md, rmdir
- New-Item
- Remove-Item
- Set-ExecutionPolicy
- Select-ObjectおよびSort-Object
- Start-およびStop-Process
- Suspend-およびResume-Service
- Test-Path
- Wait-Process
- その他の必須PowerShellコマンド
- よくある質問
PowerShellコマンドの使い方
cmdletを使用し始めるには、検索メニューからAdministratorモードでPowerShellを起動する必要があります。

必須PowerShellコマンド
WindowsのPowerShellは、単なるコマンドラインインターフェースではなく、任意のアプリケーションやプロセスを実行できるスクリプティングおよびプログラミングウィンドウでもあります。数百のcmdletがある中で、始めるためには最も重要なものだけを学ぶ必要があります。
1. Clear-HostまたはCls
タイプ中にミスをしたり、予定通りにいかないことがありますか?幸いなことに、PowerShellにはやり直しができます。便利なclear-hostコマンドは、表示から全てのテキストをクリアできます。画面の任意の行にこのコマンドを入力すると、すべてが瞬時に消えます。

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

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

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

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

私たちは、環境変数として知られるものを使用して、ローカルコンピュータの名前を表示するために「Select-object」関数を使用しています。
$env:computername |Select-Object
関数は、高度なPowerShellコーディングの出発点です。Start-processなどの関数を、パラメーターや変数と組み合わせて自分自身のバッチスクリプトを作成し、一連のタスクを実行できます。
4. Get-Help
PowerShellには、自動学習トラブルシューティングcmdletであるGet-Helpがあり、すべてのクイック修正とヘルプ記事を1つのウィンドウに表示します。任意の出力の最後にこのコマンドを入力して、さまざまなモジュールに対するヘルプを取得できます。ヘルプコンテンツの更新版を許可するためにYを押す必要があるかもしれません。

Get-helpを通じてさまざまなヘルプオプションがあります。たとえば、Get-processが何をするか、およびその正確な構文を知りたい場合は、以下のように入力します:
Get-HelpGet-Process
ヒント: キーロガーがPCの活動を監視していることを心配していますか?Windowsでキーロガーを検出する方法を学びましょう。
5. Get-Process
Get-Processは、ローカルデバイスまたはリモートコンピュータ上のすべてのプロセスの完全なリストをまとめる、必須のPowerShellコマンドです。

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

見つけたいプロセスを定義する際に含めることができる特定のパラメータは多数あります:
- ファイルサイズをMB単位で指定してプロセスをリスト
- 優先度に基づいてプロセスをリスト
- プロセスの所有者を見つける
6. Get-Service
Windowsコンピュータには、多くの実行中のプログラムとプロセスがあります。タスクマネージャーで直接見ることもできますが、Get-serviceを使用すれば、後でHTMLに変換できる完全なリストを簡単に見ることができます。

必要なサービスの正確な名前を思い出せない場合は、覚えているいくつかの文字とともに、ワイルドカード記号(*)を使用できます。
Get-service"xyz*"
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
より良い方法は、PowerShell Galleryで希望のパッケージを検索することです。これは最新のソフトウェアパッケージのワンストップリソースです。それを見つけたら、Install-module、Install-Script、またはInstall-Packageなどのコマンドを入力します。以下は、Minesweeperゲームのインストールを示しています。
Install-Script -Name Minesweeper
パッケージがPowerShellを通じてインストールされるまで、数秒または数分待ってください。後でWindowsで利用できるようになります。

もう1つの便利なコマンドはFind-packageで、これはコンピュータやWeb上のソフトウェアパッケージを検索します。
ヒント: プログラムのインストールや更新を行うためにWindowsパッケージマネージャーも使用できます。
8. mkdir, md, rmdir
mkdirは、ネイティブのPowerShellコマンドではありません。ただし、これはディレクトリを作成するために広く使用されるnew-itemのエイリアスです。この構文はDOSやLinuxで非常に人気があります。mkdirをお好みの名前と一緒に使用すると、空のフォルダーが作成されます。
mkdir "空のフォルダー名"PowerShellを、新しく作成したフォルダーを指すようにするには、単純なcdコマンドを使用します。
cd "新しく作成したフォルダー名"
新しく作成されたフォルダーは常にC:\Windows\System32パスに位置しますが、cdを使用して別のフォルダーを指すこともできます。

mkdirをmdに置き換えても、上記と同様の目的で使用できます。任意のディレクトリの内容を削除するには、rmdir(remove directory)コマンドを使用します:
rmdir "空のコンテンツのフォルダー名"
9. New-Item
mkdirやmdのようなエイリアスとは異なり、New-itemはPowerShellで新しいアイテムを作成し、その値を設定するために使用される公式のcmdletです。ファイルやフォルダーを作成することに加えて、レジストリキーやエントリを作成するためにも使用できます。
New-itemコマンドを使用して新しいディレクトリを作成するには、次のように入力します:
New-item -Path "ディレクトリパス" -Name "お好みの名前" -ItemType "directory"- ディレクトリが作成されたら、
New-itemを使ってそのフォルダー内に新しいファイルを配置できます。
New-item -Path "作成されたディレクトリパス" -Name "ファイル名.txt" -ItemType "file" -Value "お好みのテキストを挿入"
- 新しく作成されたファイルは、その宛先フォルダーで見つけることができます。

10. Remove-Item
特定のフォルダーから、.TXT、.DOC、.PDF、.WMVなどの拡張子を持つすべてのファイルを削除したいですか?まず、cdを使用して正確なフォルダーのパスを指し示し、次に以下に示すcmdlet Remove-Itemを使用します。
Remove-Item * -Include *(filetype) -Exclude *(any variable or number)
上記の方法は、非表示または読み取り専用のファイルを特定して削除したり、特殊文字のあるファイルを削除するのに非常に便利です。
知っておくと便利: 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'))
12. Select-ObjectおよびSort-Object
フォルダーまたはサブフォルダーに多くのファイルと拡張子がある場合は、あらかじめ定められたプロパティに基づいてそれらを昇順または降順にソートまたは選択することがあるかもしれません。これを実現するのが、Sort-ObjectおよびSelect-Objectのcmdletです。これにより、複数のオブジェクトを一度に並べ替えることができます。
ソートおよび選択は、異なるフォルダー内の任意のファイルや、コンピュータ上の既存のプロセスにも適用できます。以下は、作業セット(WS)サイズに基づいて最も重要な10のプロセスをソートおよび選択する例です。
Get-process | Sort-Object -Property WS | Select-Object -Last "アイテム数"
ソートおよび選択は、さまざまなファイルの履歴情報、Notepadファイルに含まれるすべてのリストアイテムの並べ替え、コンピュータ上のさまざまなイベントのソートなど、他のさまざまなパラメータにも使用できます。
13. Start-およびStop-Process
Windowsで新しいプロセスを開始するか、既存のプロセスを停止したい場合、PowerShell cmdletを素早く使ってその目的を達成できます。
プロセスをすばやく終了させるには、Stop-Process cmdletを使用します。次の例は、WordPadのプロセスを終了させる方法を示しています。
Stop-process -Name "プロセスまたはアプリケーション名"
同様に、PowerShellウィンドウから直接新しいアプリケーションを起動するには、Start-process cmdletと-FilePathフラグを入力します。
Start-Process -FilePath "アプリケーション名"
ヒント: Windowsでバックグラウンドアプリやプロセスの実行を停止してリソースを食うことなくする方法を学びましょう。
14. Suspend-およびResume-Service
実行中のサービスを開始または停止するのではなく、直接一時停止することもできます。Suspend-service cmdletの使用は簡単で、現在使用していないサービスのRAMとCPUの使用を減らす手助けをします。
注意: 一時停止するサービスの名前を取得するにはGet-serviceを使用できます。
Suspend-service -DisplayName "サービスの完全名"
終了したサービスは、簡単なResume-serviceコマンドで後で再開できます。システムに悪影響を与えずに一時停止できるサービスを把握できない場合は、次のコマンドを使用します:
Get-Service | Where-Object { $_.CanPauseAndContinue -eq "True" } | Suspend-Service -Confirm
15. Test-Path
プログラミングでファイルパスエラーを避けたい場合、文法内のファイルパスが正確であることを確認する必要があります。File Explorerで確認することは常に可能ですが、これをより正確に確認するには、指定されたパスが存在するかどうかを「True」または「False」で答えるTest-path cmdletを使用します。
Test-Path -Path "パス名"
このコマンドを修正して、特定のファイルの可用性をテストし、レジストリパスが正確かどうかを確認し、コンピュータ上の特定のファイルタイプ以外の他のファイルが存在するかどうかを判断できます。
16. Wait-Process
複数のプロセスが同時に実行されている場合、それらのうちの1つ以上が停止するのを待たなければならないことがあります。Wait-Process cmdletが大いに役立ちます。PowerShellがプロセスが停止するまで待つタイムアウトを指定できます。
Wait-Process -Name "プロセス名" -Timeout (秒数)
その他の必須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があります。これらはトラブルシューティングに使用できます。