Skip to content

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 14:36
· 189 commits to main since this release

WinMedic v0.8.0

The medic had a check-up of its own. This release finds what tuning tools
switch off deep inside Windows and follows a service that will not start down
to its cause. An audit of v0.7.0 made backups, restore points and the
background scan safer. And WinMedic looks like Windows 11 now.


New

  • System devices a tuning tool disabled: the device "Microsoft Hypervisor
    Service", which Windows Sandbox and containers need, is found, switched
    back on and checked afterwards. Two more that such tools switch off, the
    NDIS Virtual Network Adapter Enumerator and the High Precision Event Timer,
    are listed unticked.
  • Services grouped as on a small PC: a SvcHostSplitThresholdInKB above
    the memory Windows has makes Windows run its services in shared processes
    as on a PC with less than 3.5 GB, where one failing service can take others
    with it. WinMedic sets Windows' default back (needs a restart, unticked).
  • Why a service will not start, followed down to the device: "Container
    Manager Service (CmService) cannot start: HV Host Service (HvHost) failed
    (exit code 31) because the device 'Microsoft Hypervisor Service' is
    disabled."
  • A Windows feature that would not install: when Windows rolled an
    installation back and Settings showed only 0x800f0922, WinMedic finds it in
    the servicing logs and, for Windows Sandbox, names what kept it from
    installing.
  • Progress on the taskbar: the taskbar button fills while a scan or a
    repair runs, so a minimised window still shows how far it got.
  • Windows 11 look: a ticked box is filled blue and easy to tell from a
    clear one, the main button of each page is blue, headings are semibold,
    and "Remove WinMedic from Windows" is red.

Safer

  • No repair without a restore point: Windows' limit of one restore point
    a day no longer applies to WinMedic's own. If Windows still creates none,
    WinMedic asks before it repairs anything; the command line stops with exit
    code 3 unless --no-vss is given.
  • Registry backups are kept in %ProgramData%\WinMedic\backups, each
    recorded with its checksum under HKLM\SOFTWARE\WinMedic. A rollback
    imports only a backup WinMedic made, unchanged, for the key it was taken
    from. Backups that earlier versions left in %APPDATA% are no longer
    listed or restored.
  • The background scan is set up only for a winmedic.exe that nobody but
    administrators can change, as under C:\Program Files or after
    winget install --scope machine. Elsewhere, such as in Downloads, turning
    it on is refused with the reason, and a task an older version set up there
    is removed.
  • Windows tools are started by their full path, and DLLs are loaded from
    System32 only.
  • A value with a typographic quote (’) can no longer break out of a
    PowerShell command WinMedic runs.
  • The updater refuses download addresses with .. or backslashes.
  • --uninstall --purge also removes %ProgramData%\WinMedic and
    HKLM\SOFTWARE\WinMedic.

Repairs that are honest now

  • The installer package cache (%ProgramData%\Package Cache) is no
    longer reported or emptied: programs need it to repair, change or
    uninstall themselves.
  • The hosts file: only the blocking lines change, byte for byte. If the
    new file does not read back as written, the old one is put back.
  • "Restart services automatically" switched off is respected by every
    repair. A re-enabled update service counts as started only once it runs,
    and the print queue repair starts the print spooler again when it stops
    halfway.
  • winmedic --scan exits with the new code 7 when a check could not run,
    instead of 0.
  • Autostart entries with letters such as İ or Å in their path no longer
    crash the scan or get offered for deletion.
  • %TEMP% is counted once when it is C:\Windows\Temp.

Also

  • Cancelling a scan no longer waits for a large folder to be measured.
  • A check's time limit holds even when a tool leaves a process behind.
  • A check's progress bar no longer jumps back when verbose logs are on.
  • The status words on the highlighted finding stay readable in both themes.
  • The Markdown report escapes what it quotes.
  • The README names every address a scan contacts.

Full changelog: v0.7.0...v0.8.0