Fopedush Fopedush - 4 months ago 38
PowerShell Question

Powershell Clear-History doesn't Clear History

Recently I had to run a command that unfortunately required me to type a password right on the command line. Afterwards, I cleared my screen with "Clear", but also wanted to clear the command history so the offending command wouldn't show up in the session history. Unfortunately, the clear-history cmdlet doesn't seem to actually do what its documentation claims - running clear-history doesn't seem to have any impact on the session history whatsoever. I can still see previous commands in the pop-up history menu, and scroll through old commands by pressing the up key. Here's a screengrab demonstrating the problem:

Powershell clear history failure

I've verified with Get-Command that Clear-History is indeed executing the expected built-in powershell cmdlet.

I've tried a few variations, such as "Clear-History -count 10 -newest", all failing to show any effect. When I specify an exact history ID, such as "Clear-History -id 3", I receive an error like this:

Clear-History : Cannot locate history for Id 3.


Even if I can see command #3 on the screen. Any input or ideas would be appreciated.

CB. CB.
Answer

To clear the On screen Display history (F7) you have to press ALT + F7.

This history is managed by the console buffer not by powershell that has his history clearable by clear-history cmdlet

to script it try:

[system.reflection.assembly]::loadwithpartialname("System.Windows.Forms")
[System.Windows.Forms.SendKeys]::Sendwait('%{F7 2}')