PowerShellでコマンド履歴を削除する方法:Clear-Historyの使い方と活用術

PowerShellでは、実行したコマンドの履歴がセッション内に保存され、後から再確認したり再実行したりすることができます。しかし、セキュリティやプライバシーの観点から「履歴をクリアしたい」と思う場面もあるでしょう。そんなときに活躍するのが Clear-History コマンドです。本記事では、Clear-History の基本的な使い方から応用例、履歴削除の注意点まで、わかりやすく解説していきます。


Clear-Historyとは?

Clear-History は、PowerShellのコマンド履歴を削除するためのコマンドレットです。PowerShellでは、ユーザーが実行したコマンドがセッション中に履歴として記録され、Get-History コマンドで一覧表示できます。この履歴は、再利用や確認の際に便利ですが、ときにはこれを「消したい」シチュエーションもあるはずです。

たとえば以下のようなケースがあります。

  • 機密性の高いコマンドを実行した後に履歴を消したい
  • 他のユーザーと同じPCを使うため、履歴をリセットしたい
  • テストやデモ環境をクリーンな状態に戻したい

こうしたニーズに応えるのが Clear-History です。


基本的な使い方

Clear-History を単独で実行すると、現在のPowerShellセッション内のすべてのコマンド履歴が削除されます。非常にシンプルな使い方です。

Clear-History

これで Get-History を実行しても、履歴は何も表示されなくなります。

Get-History

出力なし
(※空の履歴)


特定の履歴だけを削除する方法

Clear-History には、削除対象を指定するためのオプションも用意されています。

-Id パラメーターを使う

履歴にはそれぞれIDが割り当てられています。たとえば、以下のように履歴一覧を表示します。

Get-History
  Id CommandLine
-- ------------
1 Get-Process
2 Get-Service
3 Get-EventLog -LogName System

この中から、特定のIDの履歴だけを削除したい場合は以下のように実行します。

Clear-History -Id 2

-CommandLine パラメーターを使う

実行されたコマンドの内容を指定して削除することも可能です。

Clear-History -CommandLine "Get-Process"

完全一致が必要なので、細かい表記ミスには注意してください。


複数の履歴を一括で削除する

複数のIDを一度に指定して削除することもできます。

Clear-History -Id 1,3

あるいは、複数のコマンドをまとめて削除することも可能です。

Clear-History -CommandLine "Get-Process","Get-Service"

一括削除することで、作業効率を高めることができます。


履歴削除の注意点

一度削除した履歴は戻せない

Clear-History を実行すると、削除された履歴は復元できません。誤って重要なコマンド履歴を削除してしまうと、後で困ることもあります。履歴の内容をあらかじめ Export-ClixmlOut-File などで保存しておくのも1つの方法です。

Get-History | Export-Clixml -Path "history_backup.xml"

セッションを超えて履歴は残らない

PowerShellの履歴は、基本的には現在のセッションに紐づいています。PowerShellを終了すれば、その履歴は自動的に消えることもあるため、わざわざ消す必要がない場合もあります。ただし、PowerShell 7以降では PSReadLine モジュールの影響で、履歴がファイルに保存されている場合もあります。


永続的な履歴ファイルもある?(PowerShell 7以降)

PowerShell 7では、PSReadLine モジュールによって、履歴がファイルとして ~\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt に保存されるようになっています。

この履歴ファイルを手動で削除することで、過去の履歴を物理的にクリアできます。

Remove-Item "$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt"

この操作は慎重に行いましょう。必要なら、削除前にファイルをバックアップしてください。


便利な履歴管理のテクニック

履歴をファイルに出力しておく

作業の履歴を保存しておくことで、何かトラブルがあったときの再現や学習に活かせます。

Get-History | Out-File -FilePath "my_commands.txt"

履歴から特定のキーワードを検索

Select-String を使えば、履歴の中から特定のキーワードを簡単に探せます。

Get-History | Select-String "Service"

履歴を削除する前に、このような確認をしておくと安心です。


実行ポリシーや管理者権限について

Clear-History は通常のユーザー権限でも利用できますが、管理者権限でPowerShellを開いている場合は、他の管理用タスクと組み合わせて使用されるケースもあります。管理者アカウントの操作履歴を定期的にクリアしておくのも、セキュリティ上のひとつの対策となるでしょう。


まとめ

PowerShellの Clear-History コマンドは、履歴管理を行ううえで非常に便利なツールです。とくにセキュリティやプライバシーに配慮が必要な環境では、履歴の消去が大きな意味を持ちます。基本的な使い方から応用、注意点までをしっかり理解しておくことで、PowerShellの操作をより安心・安全に行うことができます。

日常的にPowerShellを使う方は、履歴の取り扱いにも気を配って、効率的かつ安全なスクリプト実行環境を整えていきましょう。

タイトルとURLをコピーしました