Gutcheck.psd1

@{
    RootModule        = 'Gutcheck.psm1'
    ModuleVersion     = '0.2'
    GUID              = 'ce76f1fb-5362-4093-83f3-e8eb17deae0e'
    Author            = 'MERLIN'
    CompanyName       = 'MERLIN'
    Copyright         = '(c) 2026 MERLIN. Licensed under the MIT License.'
    Description       = '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.'

    # Target Machines without PowerShell 7 must stay supportable.
    PowerShellVersion = '5.1'
    CompatiblePSEditions = @('Desktop', 'Core')

    FunctionsToExport = @('Invoke-Gutcheck')
    CmdletsToExport   = @()
    VariablesToExport = @()
    AliasesToExport   = @('gutcheck')

    PrivateData = @{
        PSData = @{
            Tags         = @(
                'Windows', 'Diagnostics', 'Performance', 'Support', 'Troubleshooting',
                'Helpdesk', 'Hardware', 'Reporting'
            )
            ProjectUri   = 'https://github.com/kort3x/gutcheck'
            LicenseUri   = 'https://github.com/kort3x/gutcheck/blob/main/LICENSE'
            ReleaseNotes = @'
0.2 - Services, printing and Group Policy.
 
- Service: whether the Windows services an application depends on are installed, running
  and set to start the way they should, and how often they crashed. Configured per
  application in the Check Definitions; shipped for DATEV, Lexware, Sage, FortiClient and
  GlobalProtect.
- Printing: the print spooler, whether the default printer can be reached - Office waits
  on it whenever a document opens - offline printers, stuck jobs and print service errors.
- GroupPolicy: how long Group Policy holds up boot and logon, the slowest and failing
  extensions, slow-link detection, and a domain controller that could not be reached.
  Needs the admin prompt.
- Applications a Run now offers: Lexware, Sage, ADDISON, StarMoney, SFirm, DocuWare,
  ELO Java Client and ELOoffice; SwyxIt!, estos ProCall and STARFACE; Citrix Workspace,
  FortiClient, GlobalProtect and Securepoint VPN; pcvisit; Securepoint Antivirus, ESET,
  G DATA and Sophos; Server-Eye. Identifiers are sourced in docs/research.
- A Service Check can name OptionalServices: reported with their state, never judged for
  being stopped or disabled - the Server-Eye OCC Connector runs on one machine per site.
- An application whose installer records no install path is no longer merged with another
  one that does not either, so an old and a new VPN client side by side both appear.
 
0.1 - Gutcheck is a module.
 
The single-file script is retired. Everything it examined is now a Check described by
data: a Check Definition names a Kind the module implements and supplies that Kind's
parameters, and every threshold is one of those parameters rather than a literal.
 
- One command, one Report, as before. Technicians install once and update with the same
  command they installed with.
- The privileged half of a Run happens behind one UAC prompt, so an admin colleague can
  enter their own credentials while the rest of the Run stays in the technician's session.
- Every Finding states the Privilege it was gathered with, and Checks that could not run
  appear in the Report rather than being absent from it.
- Every Report states where its Check Definitions came from, which version they were and
  how old.
 
Upgrading from the script: see the project page. There is no compatibility shim.
'@

        }
    }
}