Repository navigation
winunitd 0.3.0
winunitd 0.3.0
The first public release of the product MSI, WinUnit Manager, for Windows 11
Enterprise and Enterprise LTSC x64. It replaces the unsigned 0.2.1-beta package.
No Go or .NET runtime is needed on the destination.
The MSI is not code-signed yet, so Windows SmartScreen may warn when you open
it. Check the download instead:
# Compare with SHA256SUMS from this release.
Get-FileHash .\winunitd-0.3.0-x64.msi -Algorithm SHA256
# Confirm that this repository's release workflow built it from the v0.3.0 tag.
gh attestation verify .\winunitd-0.3.0-x64.msi --repo PLN/winunitd `
--signer-workflow PLN/winunitd/.github/workflows/release.yml `
--source-ref refs/tags/v0.3.0Install
From an elevated terminal:
msiexec /i .\winunitd-0.3.0-x64.msi /qbThe package installs the LocalSystem winunitd service, puts winunitd.exe,
winctl.exe and winunit-notify.exe in %ProgramFiles%\winunitd\bin and adds
that folder to PATH (REMOVE=AddToPath opts out). Examples and documentation
are in %ProgramFiles%\winunitd\doc. No workload is enabled. See the
installation guide for repair, upgrade and removal.
From 0.2.1-beta: the MSI refuses to install while the beta is present.
Back up %ProgramData%\winunitd, stop the service, uninstall the beta, then
install 0.3.0. Units, enablement and logs carry over; enabled units start again
(details).
New since 0.2.1-beta
- Installer and servicing. Repair and in-place upgrade stop the service
cleanly and roll back if the new version fails to start. Data under
%ProgramData%\winunitdis kept across repair, upgrade and removal. The
installer refuses conflicting services and unsafe directories, and an
optional compatibility floor keeps unattended servicing from running an
unsuitable build. The service writes a daemon log and Windows Application
log events. - Units. A cooperative stop command (
ExecStop), repeatable oneshots,
fixed or exponential restart backoff, loopback readiness probes and
probe-based health checks,BindsTo, and an explicit unit format 2
(FormatVersion=2) whose policies are listed in the
unit reference. Timers handle calendar, boot and
interval triggers across clock changes and DST. Journals stay within bounded
disk use. - Control. Start, stop and restart return operation IDs for
winctl operation, andwinctl cancelstops unfinished starts and
restarts; a maintenance mode quiesces the manager for servicing;
winctl capabilitiesreports the running build; status stays available
under heavy load. - User managers. Each admitted user gets a manager in their own session
for their units under%LOCALAPPDATA%\winunitd.winctl enable-linger
keeps a user's manager running without a sign-in. Both work for local and
Active Directory domain accounts, including roaming profiles.
Limits
- Tested on Windows 11 Enterprise LTSC build 26100. Other editions, Windows
Server and ARM64 are not supported yet; see SUPPORT.md. - Microsoft Entra ID (cloud) accounts are not supported.
- A lingering user's services run without the user's credentials: network
shares need credentials the service supplies, and DPAPI, Credential Manager
and EFS are unavailable. While linger holds a roaming profile, the profile
stops roaming on that machine
(headless user managers). - Experimental: the
headless-store-urilinger mode,
RequiresInteractiveSession, and persistent timers (Persistent=). - Downgrades are refused.
Qualification
Each area was tested on disposable Windows guests. A pilot also ran a real
workload under the installed service, including a 24-hour soak and an upgrade
between two pilot builds. Before publication, this MSI was installed clean and
as an upgrade from the 0.1.1 pilot build on a disposable guest. The
milestones and the evidence documents they link record what
was tested and what was not.