Gutcheck

0.20.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

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name Gutcheck -RequiredVersion 0.20.0

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name Gutcheck -Version 0.20.0

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

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

Invoke-Gutcheck

PSEditions

Desktop Core

Dependencies

This module has no dependencies.

Release Notes

0.20.0 - What the domain controllers hand out.
- New Finding "Namensraum hinter dem Domänennamen (DFS)": for every drive mapped by the
 domain's name, the Servers the namespace names, and whether each is there. An entry
 that still names a Server which is gone is a warning, with the entry and the Server.
- New Finding "Richtlinien auf den Domänencontrollern (SYSVOL)": the version of every
 policy read from each domain controller and compared. A difference means replication
 between them is behind or has stopped.
- Both without admin rights, and both say the cause first in the suspicion "Laufwerke
 über den Namen der Domäne".
- The list of sign-ins names the domain controller Group Policy used at each, and says
 "nichts protokolliert" where a cell was empty.
- New Finding "Anmeldeserver dieser Sitzung", in the area of the domain.
0.19.1 - Three from a Run.
- "Uhrzeit gegen die Zeitquelle" takes the time source a policy sets: it named the domain
 for a machine whose policy names an NTP server.
- Connections to several Servers lost once each no longer make a suspicion about this
 machine's connection beside an adapter with power saving on.
- "Zeitdienst: Stand" says minutes where it was minutes, and the server by its name.
0.19.0 - Drives that come late.
- New suspicion "Laufwerke über den Namen der Domäne": where the mapping of the drives is
 slow in some runs, the domain's name answers "share not found", and sign-ins are slow on
 some days - by one domain controller and not the other - the Report says so in one
 place, and what to check on the controllers.
- A name that leads to several addresses is shown with all of them ("führt zu ..."), and
 no longer with the first one as if that were the Server.
- The sign-in Finding counts over every sign-in the logs hold: "Alle 13 langsamen
 Anmeldungen liefen über ..., alle 13 schnellen über ...".
0.18.1 - A gap that names its Checks.
- "Kein Verdacht möglich" in a narrowed Run names the Checks that would have looked for
 that suspicion, and no longer the whole list of what the Scope left out. The Checks of
 the applications count among them where a Scope takes none.
- The title of a Scope with an umlaut reads as it is written: from the Published
 Definitions "Domäne" arrived as two other letters.
- New: "Zeitdienst: Stand" - when the time service of Windows last synchronised and with
 what source, asked of Windows and shown, where the Report told the reader to type the
 query. Asked only: a Run does not set the clock.
- A failed policy extension names its items and the policy each comes from. Where it has
 one, that is the one that fails.
- "Freigabe am Server nicht gefunden" names the shares where the events name them, and
 says that Windows names none where they do not.
0.18.0 - A Run for one question.
- New: -Scope narrows a Run to a named part of the Checks - Hardware, Network, SignIn, or
 Quick (everything but the two load tests). On an interactive Run the choice is offered in
 the "Umfang" card, with everything where Enter takes it. A Run without a Scope is the Run
 it always was.
- A narrowed Run says so: one Finding names what it left out, the box at the top of the
 Report names the Scope, and a suspicion says what was not checked.
- The Scopes are part of the Check Definitions and are published with them.
- A Check that reads another says so where that one did not run: a .NET runtime nobody
 looked for is no longer "in order", and slow sign-ins say that nobody read which domain
 controller they went to.
0.17.1 - Titles that say what they count.
- -Skip is kept for a Check that needs admin rights: "-Skip 'CPU stress test'" ran the
 stress test all the same, and the admin prompt came for Checks nobody wanted.
- The two Findings about lost and failed connections to Servers are named for what they
 read: "Dateifreigaben: ...". "None" there never said anything about Remote Desktop.
- Remote Desktop warns from ten dropped sessions to one server, and from twenty to all
 of them together; failed connections from ten together.
- What Windows logs about the domain and the time in the first minutes after a start,
 before the network is up, is listed and not counted: no warning for being switched on.
- Each domain controller is asked for the mapped paths themselves, and one that takes
 seconds to answer for a path it has is a Finding.
- "Freigabe am Server nicht gefunden" says where the session came back.
- "Langsamste Richtlinienerweiterungen" says how many runs were slow, when last, and
 whether somebody waited. One long run in the background is a note, no failure.
- "Fehlgeschlagene Richtlinienerweiterungen" showed a server where the meaning of the
 error belongs. It says the meaning, when last, and through which domain controllers.
- New: which Group Policy objects were applied to the computer and to the User, which
 were not and why, and how each component of policy ended - two Findings and two tables,
 from Windows' own result of policy. An object at one version in the directory and at
 another in SYSVOL warns.
0.17.0 - The domain, and each of its controllers.
- New Check "Domain": the domain controllers DNS names, each measured by itself -
 LDAP, Kerberos, SMB, its clock, and whether it has SYSVOL and the folder the drives
 mapped by the domain's name go through. A share one controller has and another has
 not is a Finding: the drive that is slow on some days. Needs no admin rights.
- The Report has an area "Domäne". What the domain logged and the age of the computer
 account's password stand there, no longer under the network.
- The list of sign-ins says which controller the domain's name led to at each, and the
 sign-in Finding says so where the slow ones went to one and the quick ones to another.
- "Freigabe am Server nicht gefunden" says which address answered, and how often.
- What an adapter's driver logs while the machine starts is named as that in the network
 timeline, and "Adapter: Verbindung im Betrieb getrennt" counts only a link that went
 down while the machine ran. An adapter with power saving on warns where it did.
- What a Finding means is a list, a statement to a line, and a copied Finding is laid
 out the same way. The Finding about the domain's log says only what applies.
- A sign-in that is slow on some days and quick on others warns: two slow ones among
 the last ten are enough, and the Finding shows the phases of a slow one. Two quick
 sign-ins no longer make a problem disappear.
- "Freigabe am Server nicht gefunden" is a Finding of its own. A server that answers
 "no such share" was counted as a lost connection and failed the machine; it is what a
 drive mapped by the domain's name logs when not every server behind it has the share.
- A time in a table is written as German writes it: 12.10.2026, never 10/12/2026.
- The status of a secure channel that did not come about has its meaning beside it.
0.16.0 - What takes time before the desktop.
- "Anmeldung: Zeit bis zum Desktop": how long the User's sign-ins take, and where the
 time of the last one went - loading the profile, Group Policy, the other parts of
 Windows, the start of the shell and its own tasks. Needs no admin rights.
- "Anmeldung: Autostart-Programme": Windows starts them one after the other, about
 thirty seconds apart. The Finding says when the last one starts; with twelve, that is
 six minutes after the sign-in.
- Two tables: every sign-in with its phases, and the last one step by step.
- The start duration says what the last start was spent on: the way to the desktop,
 the settling after it, and the time the machine stood at the sign-in screen.
- Ping loss measured while the processor was busy is graded a step milder, and the
 Finding says how busy the machine was and to measure again: a machine at full load
 loses pings on a line that is in order.
- Loss to the gateway is worded by what the machine hangs on. A desktop at a cable is no
 longer told about its Wi-Fi.
0.15.1 - A crash minutes after the drop.
- A program on a share is held against a lost connection up to 30 minutes before its
 crash, no longer 10. The Finding says how long after the drop the crashes came and
 for how many the connection was already back, and what that means.
- "Wechsel zwischen Kabel und WLAN": a cable connection that keeps failing over to
 Wi-Fi and back is a Finding, and the Lead about the connection then says so.
- Warnings and errors of the adapters' own drivers stand in the network timeline, for
 any maker, with the adapter named.
- Disk errors are three Findings under "Speicher": built-in drives, external drives
 (USB), and what names no drive. An unplugged stick no longer colours the answer about
 the SSD. A table lists every error with its drive.
- DNS in one place: each DNS server asked by itself, and every event about DNS.
- "Kein Domänencontroller erreichbar" with an internal error is the secure channel that
 comes about at the second attempt (Windows 11 24H2 and later against domain
 controllers before Server 2025): shown, explained, and no longer a warning. Beside it
 the age of the computer account's password, which warns where it is no longer renewed.
Versions 0.1 to 0.15.0: https://github.com/kort3x/gutcheck/blob/main/docs/release-notes-earlier.md

FileList

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 (current version) 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 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
Show less