Gutcheck
0.13.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.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.
0.9.1 - No code without what it means.
- A status or an error code is no longer shown bare: service exit codes, print and Group
Policy errors, HTTP statuses, certificate errors, sign-in errors of Windows and of
Microsoft Entra ID, add-in settings and the antivirus and printer states say what they
mean, with the code behind it. The evidence tables are headed in German.
- The Report says who ran the Run and with what rights, and gives the evidence more room.
- Fewer false alarms: a remote desktop session's display adapter is no outdated graphics
driver; a printer whose queues report offline is one printer and is not called
outdated; a virtual disk is not failed for calling itself an HDD; the add-ins Office
installs itself do not count as many add-ins.
- Failed connections that are a program going through the network address by address
are recognised as that, and the Report says what to look for.
- An elevated window of an account that has no lesser rights is not offered a restart.
0.9 - What the Findings point to together.
- "Verdacht": where two Findings observed two different things that point to one cause,
the Report says so before anything else - a failing drive, failing memory, the graphics
driver, this machine's network connection, or one Server. It names the Findings it
rests on, says once what to do, and says what would have supported it and was not
checked. It is no Finding and is in no count.
- A Finding says what it means ("Bedeutung") apart from what to do about it ("Was tun"),
for the Findings of Stability, Network and Outlook that can warn or fail.
- What a Hint assumes about the machine is found out once and stated at the top of the
Report: connected by cable, Wi-Fi or VPN, notebook or desktop, docked, on battery, in a
domain. No docking station is named on a desktop, and a slow measurement says when it
was taken on battery.
- A Finding links to the evidence to read with it and to the Findings that belong with
it, and every piece of evidence says which Findings it belongs to.
- findings.csv has new columns at the end: References, Signals, Meaning, Subject,
Unobserved. The graphics driver and its date are a Finding of their own.
Versions 0.1 to 0.8.3: 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\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 | 5 | 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 | 6 | 10/11/2026 |
| 0.13.0 (current version) | 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 | 6 | 10/8/2026 |
| 0.6.1 | 5 | 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 |