Friday, August 24, 2012

Powershell Tip: Copying commands from Get-History

Wanted to copy a command out to the clipboard without having to edit the output, Using a new-alias and get-history I was able to accomplish this.

Found a new-alias to output to the clipboard

                new-alias Out-Clipboard $env:SystemRoot\System32\clip.exe

Using this new alias along with get-history

PS C:\Scripts> get-history

  Id CommandLine

  -- -----------

   1 get-adcomputer -filter * -properties * | where {$_.operatingsystem -lik...

   2 get-history

   3 get-adcomputer -filter *

   4 get-history

   5 cls

PS C:\Scripts>

I wanted to get just the command in line 1, so I piped out all the properties of line 1

Get-History 1 | Select *

PS C:\Scripts> Get-History 1 | Select *

Id                 : 1

CommandLine        : get-adcomputer -filter * -properties * | where {$_.operati

                     ngsystem -like "*Professional*"} | FT Name, Operatingsyste

                     m, Description

ExecutionStatus    : Stopped

StartExecutionTime : 8/23/2012 10:13:39 AM

EndExecutionTime   : 8/23/2012 10:13:55 AM

PS C:\Scripts>

Seeing that there is a property for CommandLine and it looks like it contains the whole commandline as it was run I then tested to make sure that it would show me the information I was looking for

(Get-History 1).CommandLine

PS C:\Scripts> (Get-History 1).CommandLine

get-adcomputer -filter * -properties * | where {$_.operatingsystem -like "*Prof

essional*"} | FT Name, Operatingsystem, Description

PS C:\Scripts>

Sure enough it looks like it contains what I wanted so putting this together with my New-Alias Out-Clipboard

(Get-History 1).CommandLine | Out-Clipboard

Dumps the command directly into the clipboard to be pasted into your documentation exactly as you ran it.

get-adcomputer -filter * -properties * | where {$_.operatingsystem -like "*Professional*"} | FT Name, Operatingsystem, Description

I think that's pretty cool.

No comments:

Post a Comment