Gutcheck
0.14.0
Gutcheck - an honest look inside a slow or unstable Windows PC. Performance and stability diagnostics for Windows clients, driven by data-defined Checks. A technician runs one command at a customer site and reads the report on the spot.
Minimum PowerShell version
5.1
Installation Options
Owners
Copyright
(c) 2026 MERLIN. Licensed under the MIT License.
Package Details
Author(s)
- MERLIN
Tags
Windows Diagnostics Performance Support Troubleshooting Helpdesk Hardware Reporting
Functions
PSEditions
Dependencies
This module has no dependencies.
Release Notes
0.14.0 - What two Runs left open.
- The processes of the system, which a Run may not open in the user's session, are read
with admin rights for what they depend on. "Netzabhängigkeiten: nicht untersucht" no
longer says "only with admin rights" of a Run that had them.
- A limited processor is said to be limited by what: the power plan's maximum, Windows'
thermal throttle with the temperature, or the firmware. A table shows what was read.
- "Keine in 30 Tagen" for network disruptions says since when it can say so, where a log
does not reach back the whole period, and names the log.
- No Hint sends the reader to events.csv: print errors by printer, an application's
service crashes and Windows' warnings of low memory are tables of the Report.
- What Windows logs of a failed print names the document and whose it was. That text is
no longer kept, and the name of a waiting print job is no longer read.
- A Finding graded on a number of events says so: "Ereignisse: 120 in 30 Tagen".
- The newest 200 network disruptions are listed. The Servers of a connection Finding
are a list, with how many more there are, and both say that only SMB is counted.
0.13.0 - What belongs together, and what stays behind.
- The folder the admin part hands its readings over in could stay behind after a Run,
readable by every user of the PC. It is the Run's alone now and is deleted; where it
still stays, the Finding "Administrator-Teil" warns and names it.
- Outlook: a mailbox on the own Exchange beside an account at Microsoft 365 warns only
where Windows logged a program asking for an account it does not have.
- The applications are chosen from a list in columns, as many as the window is wide for.
Ctrl+N selects none. Left and Right go to the column beside.
- A Check's row is named without "App:", and a long name no longer pushes its row out of
line. The admin part's bar moves by the Checks it has finished, the result's bar while
the Report is written.
- A crashing program's Hints name what this machine is connected by: cable and switch
port, or the Wi-Fi. What a .NET exception type means is said apart from what to do.
- Hardware errors are counted by component. Only those of the memory support the
"Verdacht" for memory; an adapter whose power saving is on supports the one for the
connection, beside a link that dropped.
- A Finding that is not in order links to the one that looked for the same and found
nothing: disk errors to a drive that reports itself healthy.
- A Run in another account's session says so once, also for Outlook's sign-in, and
notices it without admin rights too.
0.12.1 - The whole Run in cards.
- The search for a newer version and the sign-in for the Check Definitions are cards
too, under the banner. The QR code stands in its card and is gone once signed in.
- A card is as wide as the window, so that what a Check found can be read, and two
thirds of its height at most.
- A Run of many Checks no longer flickers, and no progress bar of PowerShell's flashes
over it. The result has a bar while the Report is written.
- A Run prints nothing after the path to its Report. -PassThru hands back the Run.
- The banner is a small face where the window can draw it, and it blinks.
0.12.0 - A Run you can watch.
- In PowerShell 7 a Run shows what it examines, the Checks and the result as three cards.
Each Check is a row with its progress and the worst of what it found; a finished part
folds to one line, and the result stays open with every FAIL and WARN.
- The applications are chosen from a list to move in, with everything detected selected.
A name that is on no list can be typed and is checked as a process.
- On Windows PowerShell 5.1 a Run writes what it always wrote, a line for every Finding.
Its questions are asked as a numbered list and a typed line.
- The questions about another user's session are a choice of three and a yes or no,
where they were letters to type.
- console.log has every line as one line where the window has colour.
0.11.3 - What a terminal server showed.
- On Windows Server 2019 every HTTPS endpoint failed with an error about
"SslProtocolType": that was Gutcheck's way of asking and no fault of the server asked.
It is asked again naming TLS 1.2.
- Each User Profile gets its share of the measuring time, three minutes in all: on a
server with 32 profiles one had been measured.
- A Windows Server is said to keep no list of antivirus programs and to record no boot
duration, where the Report said "nicht verfuegbar".
- A path handed in single quotes ends at its quote, and an error number Windows has no
sentence for is said to have none.
0.11.2 - Evidence a second level can read.
- Every table of the evidence sorts by any column and filters by a word, and has a help
behind a "?" that says what it shows, where it comes from and how to read it.
- The adapters' power saving and SMB client, the proxy and the wireless interface are
tables that say what each value does, where they were lines as they came.
- A process that hosts services names the services in it, in its Finding and in a table.
- The part with admin rights runs without a window of its own; the Run's window says
which Check it is at. -ShowElevatedWindow shows it as before.
- An Outlook profile with a mailbox on the own Exchange and one in Exchange Online has
the sign-in looked at for both.
0.11.1 - Whose it is, and where to read on.
- For Outlook, the Servers of the mailboxes that are set up are measured: the
Customer's own Exchange for a mailbox that is on it, Microsoft 365 for one in Exchange
Online. Each measurement says whose Server it is.
- Sign-in errors at Microsoft 365 are told apart by program: Outlook and Office in one
Finding, OneDrive, Teams, the browser and the others in a Finding of their own.
- A Finding that a text names by its title is a link to it.
- Where the log holds no Group Policy run at startup or at sign-in, the Report says why.
0.11 - The User, and what changed.
- The Report says who the User is in terms of the machine, under a new heading
"Benutzer": since when they are signed in and what their Session holds; what kind of
User Profile they have, how large its folders are and how long it takes to load;
where Desktop and Documents lie; their proxy, default printer, autostart, monitors
and Offline Files.
- Every Session and every User Profile on the machine is listed, with a warning for a
disconnected Session that holds memory and a count of User Profiles nobody has used
for half a year. Of other Users only account, state, times, memory, kind and size.
- A timeline of what Windows logged as changed in the last 30 days - programs, updates,
drivers, services, restarts - with the account. A crash Finding says so where the
crashes began shortly after such a Change.
- Gutcheck reads state and logged Changes and never what a User did: no file names, no
usage, no content.
- A Run that is not in the User's Session says so and leaves the User's part unread.
0.10 - Every running program.
- A new Check looks at every running program, not only at the applications that have a
Check of their own: a table of all of them with memory, handles, GDI and USER objects,
and a Finding for one near the limit of 10,000 GDI or USER objects or holding
unusually many handles. The programs of other accounts are read with admin rights;
what stays unread is said to be unread.
- A status of Windows or a WinHTTP error Gutcheck has no wording for is said as Windows
says it; each print service error has its own meaning; four sign-in errors of
Microsoft Entra ID are worded as Microsoft documents them.
- Where a program was found is one Finding per application, and a shortcut to a program
on a share is information, not a warning.
Versions 0.1 to 0.9.1: https://github.com/kort3x/gutcheck/blob/main/docs/release-notes-earlier.md
FileList
- Gutcheck.nuspec
- Definitions\checks.json
- Gutcheck.psd1
- Gutcheck.psm1
- Invoke-GutcheckElevated.ps1
- Private\Account.ps1
- Private\AppSelection.ps1
- Private\Autoupdate.ps1
- Private\Code.ps1
- Private\Console.ps1
- Private\Data.ps1
- Private\Definition.ps1
- Private\Elevation.ps1
- Private\Finding.ps1
- Private\KeepSignIn.ps1
- Private\Kind.ps1
- Private\Kinds\App.ps1
- Private\Kinds\AppConnection.ps1
- Private\Kinds\AppLog.ps1
- Private\Kinds\AppRuntime.ps1
- Private\Kinds\Autodiscover.ps1
- Private\Kinds\Battery.ps1
- Private\Kinds\BootPerformance.ps1
- Private\Kinds\Change.ps1
- Private\Kinds\Cpu.ps1
- Private\Kinds\CrashDump.ps1
- Private\Kinds\DiskHealth.ps1
- Private\Kinds\DiskTest.ps1
- Private\Kinds\DotNet.ps1
- Private\Kinds\FolderSize.ps1
- Private\Kinds\GroupPolicy.ps1
- Private\Kinds\HttpsEndpoint.ps1
- Private\Kinds\ImageIntegrity.ps1
- Private\Kinds\Memory.ps1
- Private\Kinds\Network.ps1
- Private\Kinds\NetworkDependency.ps1
- Private\Kinds\NetworkDependencyElevated.ps1
- Private\Kinds\NetworkDisruption.ps1
- Private\Kinds\Odbc.ps1
- Private\Kinds\OfficeAddins.ps1
- Private\Kinds\OutlookAuth.ps1
- Private\Kinds\OutlookData.ps1
- Private\Kinds\Power.ps1
- Private\Kinds\Printing.ps1
- Private\Kinds\Program.ps1
- Private\Kinds\ProgramElevated.ps1
- Private\Kinds\Security.ps1
- Private\Kinds\Server.ps1
- Private\Kinds\Service.ps1
- Private\Kinds\Session.ps1
- Private\Kinds\SessionElevated.ps1
- Private\Kinds\Stability.ps1
- Private\Kinds\Startup.ps1
- Private\Kinds\Storage.ps1
- Private\Kinds\Stress.ps1
- Private\Kinds\System.ps1
- Private\Kinds\Temperature.ps1
- Private\Kinds\Updates.ps1
- Private\Kinds\UserProfile.ps1
- Private\Kinds\UserProfileElevated.ps1
- Private\Kinds\UserProfileOther.ps1
- Private\Kinds\UserSetting.ps1
- Private\Lead.ps1
- Private\Parameter.ps1
- Private\Probe.ps1
- Private\Progress.ps1
- Private\PublishedDefinitions.ps1
- Private\QrCode.ps1
- Private\Reading.ps1
- Private\Report.ps1
- Private\Sampling.ps1
- Private\Section.ps1
- Private\Signal.ps1
- Private\Situation.ps1
- Private\Text.ps1
- Private\TokenCache.ps1
- Public\Invoke-Gutcheck.ps1
- Vendor\Lantern.ps1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 0.28.0 | 6 | 10/15/2026 |
| 0.27.0 | 7 | 10/15/2026 |
| 0.26.0 | 7 | 10/14/2026 |
| 0.25.0 | 7 | 10/14/2026 |
| 0.24.1 | 3 | 10/14/2026 |
| 0.24.0 | 10 | 10/14/2026 |
| 0.23.0 | 7 | 10/13/2026 |
| 0.22.0 | 6 | 10/13/2026 |
| 0.21.0 | 5 | 10/13/2026 |
| 0.20.0 | 7 | 10/13/2026 |
| 0.19.1 | 7 | 10/12/2026 |
| 0.19.0 | 4 | 10/12/2026 |
| 0.18.1 | 4 | 10/12/2026 |
| 0.18.0 | 5 | 10/12/2026 |
| 0.17.1 | 3 | 10/12/2026 |
| 0.17.0 | 6 | 10/12/2026 |
| 0.16.0 | 7 | 10/12/2026 |
| 0.15.1 | 16 | 10/12/2026 |
| 0.15.0 | 6 | 10/12/2026 |
| 0.14.1 | 7 | 10/11/2026 |
| 0.14.0 (current version) | 7 | 10/11/2026 |
| 0.13.0 | 7 | 10/11/2026 |
| 0.12.1 | 8 | 10/11/2026 |
| 0.12.0 | 5 | 10/11/2026 |
| 0.11.3 | 6 | 10/11/2026 |
| 0.11.2 | 8 | 10/10/2026 |
| 0.11.1 | 8 | 10/10/2026 |
| 0.11 | 5 | 10/10/2026 |
| 0.10 | 5 | 10/10/2026 |
| 0.9.1 | 10 | 10/10/2026 |
| 0.9 | 8 | 10/10/2026 |
| 0.8.3 | 5 | 10/9/2026 |
| 0.8.2 | 4 | 10/9/2026 |
| 0.8.1 | 3 | 10/9/2026 |
| 0.8 | 3 | 10/9/2026 |
| 0.7.2 | 4 | 10/9/2026 |
| 0.7.1 | 6 | 10/9/2026 |
| 0.6.2 | 7 | 10/8/2026 |
| 0.6.1 | 6 | 10/8/2026 |
| 0.6 | 4 | 10/8/2026 |
| 0.5.2 | 6 | 10/7/2026 |
| 0.5.1 | 8 | 10/7/2026 |
| 0.5 | 5 | 10/7/2026 |
| 0.4 | 19 | 9/25/2026 |
| 0.3 | 7 | 9/25/2026 |
| 0.2 | 7 | 9/24/2026 |