Windows 7 / Windows Server 2008 R2: Problem Steps Recorder

Vista Pearl Hi all, and welcome to Day 21 in our Windows 7 / Windows Server 2008 R2 Launch Series.  Tomorrow is the big day!  To wrap up our Launch Series, I want to talk today about a really cool tool included in Windows 7 and Windows Server 2008 R2 called Problem Steps Recorder.  I am sure we have all had situations where we needed to be able to reproduce a complex issue and just can’t seem to get it.  Often we work with end users, who may be across the country (or planet) from us, and need to be able to understand what they are doing that results in something that we need to fix.  Working through steps over the phone can be problematic at best, and connecting remotely to see what is happening on the other end is often not feasible.  Enter Problem Steps Recorder.

Problem Steps Recorder is a tool that collects and records basically everything you do within a certain scenario and packages it up for easy transport.  Problem Steps Recorder can be invoked by clicking the handy Start button Button  and typing in “Problem Steps Recorder” or PSR. Just click and it will then launch the application, which should look like this:


Then, you just click the Start Record button and reproduce the problem.  When you are done, click the Stop Record button and it will automatically collect the data and save it as a .ZIP file for easy upload.  Inside the ZIP file will be a file with a name similar to Problem_20090924_1612.mht.  This is a web page archive file and can be opened in Internet Explorer.  I used an application called BadApp32.exe which is just a small app that crashes when you run it.  Once I ran Problem Steps Recorder and ran the app to cause the crash, I stopped recording and then viewed the MHT file. Here is what the output web page looks like:

IE Header

Recorded Problem Steps

This file contains all the steps and information that was recorded to help you describe the problem to others.

Before sharing this file, you should verify the following:

  • The steps below accurately describe the problem.
  • There is no information below or on any screenshots that you do not want others to see.

Passwords or any other text you typed were not recorded, except for function and shortcut keys that you used.

You can do the following:

  • Review the recorded problem steps
  • Review the recorded problem steps as a slide show
  • Review the additional details

Problem Steps

Problem Step 1: (9/24/2009 4:28:55 PM) User Comment: “I double-clicked this icon.”


Problem Step 2: (9/24/2009 4:28:57 PM) User left double click on “Badapp32.exe (list item)”


Problem Step 3: (9/24/2009 4:29:26 PM) User Comment: “Then, I click the little picture of the bomb.”


Problem Step 4: (9/24/2009 4:29:28 PM) User left click in “Bad App”


Problem Step 5: (9/24/2009 4:29:53 PM) User Comment: “This causes the application to crash.”


Problem Step 6: (9/24/2009 4:29:55 PM) User left click on “Close program (push button)” in “Badapp32.exe”


Additional Details

The following section contains the additional details that were recorded that can help find a solution for your problem.

These details help accurately identify the programs and UI you used while recording the problem steps.

This section may contain text that is internal to programs that only very advanced users or programmers may understand.

Please review these details to ensure that they do not contain any information that you would not like others to see.

Recording Session: 9/24/2009 4:28:29 PM – 4:29:56 PM

Problem Steps: 6, Missed Steps: 0, Other Errors: 0

Operating System: 7600.16385.x86fre.win7_rtm.090713-1255

Problem Step 1: User Comment: “I double-clicked this icon.”


UI Elements:

Problem Step 2: User left double click on “Badapp32.exe (list item)”

Program: Windows Explorer, 6.1.7600.16385 (win7_rtm.090713-1255), Microsoft Corporation, EXPLORER.EXE, EXPLORER.EXE

UI Elements: Badapp32.exe, FolderView, SysListView32, SHELLDLL_DefView, WorkerW

Problem Step 3: User Comment: “Then, I click the little picture of the bomb.”


UI Elements:

Problem Step 4: User left click in “Bad App”


UI Elements: Bad App, BadApp

Problem Step 5: User Comment: “This causes the application to crash.”


UI Elements:

Problem Step 6: User left click on “Close program (push button)” in “Badapp32.exe”

Program: Windows Problem Reporting, 6.1.7600.16385 (win7_rtm.090713-1255), Microsoft Corporation, WERFAULT.EXE -U -P 3520 -S 224, WERFAULT.EXE

UI Elements: Close program, &Close program, Button, CtrlNotifySink, DirectUIHWND, Badapp32.exe, #32770

The output describes what the user did as well as screen shots of what was going on at the time.  In addition, the screenshots included are clickable to view full size. You may also notice that some of the pictures include an entry called User Comment above them.  PSR has an additional button titled Add Comment.  When you click this button, it allows you to highlight an area of the screen and type in a comment.  This allows you to specify additional comments to the repro steps to make it easier to follow during a complex recording.  The section at the bottom of the page above describes in text exactly what you did at each step, what program was involved and what UI elements were invoked.

The repro I did was very small and pretty much included nothing more than running an app and then clicking inside the app to cause it to crash.  However, you can use Problem Steps Recorder to record much longer or more complex scenarios, and it will track everything you did between the time you click the Start Record and Stop Record buttons.  This makes Problem Steps Recorder a powerful tool in your bag of tricks.  As soon as you can get your hands on Windows 7 or Windows Server 2008 R2, I recommend playing around with this tool and as soon as you do I am sure you will be able to find plenty of scenarios to use it.

Problem Steps Recorder Command-Line Syntax

psr.exe [/start |/stop][/output <fullfilepath>] [/sc (0|1)] [/maxsc <value>]
 [/sketch (0|1)] [/slides (0|1)] [/gui (0|1)]
 [/arcetl (0|1)] [/arcxml (0|1)] [/arcmht (0|1)]
 [/stopevent <eventname>] [/maxlogsize <value>] [/recordpid <pid>]
/start        Start Recording. (Outputpath flag SHOULD be specified)
/stop         Stop Recording.
/sc           Capture screenshots for recorded steps.
/maxsc        Maximum number of recent screen captures.
/maxlogsize   Maximum log file size (in MB) before wrapping occurs.
/gui          Display control GUI.
/arcetl       Include raw ETW file in archive output.
/arcxml       Include MHT file in archive output.
/recordpid    Record all actions associated with given PID.
/sketch       Sketch UI if no screenshot was saved.
/slides       Create slide show HTML pages.
/output       Store output of record session in given path.
/stopevent    Event to signal after output files are generated.
PSR Usage Examples:


psr.exe /start /output /sc1 /gui 0 /record <PID>

 /stopevent <eventname> /arcetl 1
psr.exe /start /output fullfilepath.xml /gui 0 /recordpid <PID>
 /stopevent <eventname>
psr.exe /start /output fullfilepath.xml /gui 0 /sc 1 /maxsc <number>
 /maxlogsize <value> /stopevent <eventname>

psr.exe /start /output %temp%\ /sc 1 /gui 1 /arcetl 1 /arcxml 1 /sketch 1 /slides 1
psr.exe /stop

So, that is all for this post, thanks again for tuning in.  Remember – LAUNCH DAY is tomorrow!

– Tim Newton

Share this post :