Recording sessions with transcripts
When working in PowerShell doing various tasks, I find myself doing something that I then want to document or turn into a function and I have to ask myself What did I just do?, Do I know all of the variables I had previously set?, Do I know all the objects I am using?, What kind of authentication am I using?, and so on.
The PowerShell console and ISE have some level of in-built history, but if you're doing large tasks across multiple server environments, this history quickly becomes too small.
Enter PowerShell transcripts. Transcripts are a great way of recording everything you do in a PowerShell session and saving it in a text file for later review.
How to do it...
Carry out the following steps:
Open the PowerShell console (not the ISE) and begin recording a transcript in the default location by executing
Start-Transcript
.Stop the recording by executing
Stop-Transcript
.Begin recording a transcript into a different location by calling
Start-Transcript
with the–Path
switch:
How it works...
In the first step, we execute the command Start-Transcript
, which automatically creates transcript under the user's My Documents
folder. Each transcript file is named with a unique timestamp that ensures files don't overwrite or conflict with each other. We can stop the recording by then executing Stop-Transcript
.
In the third step, we tell PowerShell to save the transcript file to C:\temp\foo.txt
. When pointing transcripts to an existing file, PowerShell will attempt to append to the file. If the file is read-only, using the –Force
command will instruct PowerShell to attempt to change the permissions on the file, and then append to it.
There's more...
Transcript limitations: Session transcripts only work with the PowerShell console, and not the PowerShell ISE. The ISE helps overcome some of this limitation by providing a larger scroll-back area, but if you want to use transcripts, you have to use the console application.
Fun with transcripts: Also, because transcripts capture anything typed or written to the screen, you need to be careful what you run. For instance, if you run the following commands, you will result in a recursive loop that has to be manually stopped:
See also
See the Creating and using PowerShell profiles recipe for information on how to automatically start transcripts for your sessions.