MultiDeskKore ← Back to console

MultiDeskKore — Installation & Setup Manual

Version 1.0 · 25 October 2026 · Applies to MultiDeskKore Solo — the Single Host edition (MultiDeskKore V1) on Windows 10 Pro 22H2

Editions: these manuals cover MultiDeskKore Solo — the Single Host edition (MultiDeskKore V1/RC1, available now). MultiDeskKore Fleet (Multi-Host, V2) and MultiDeskKore Station (Same Machine, local multiseat) are in development and are not covered here.

1. What you are installing

MultiDeskKore Solo (Single Host, V1) turns one Windows host into several independent desktops. Each user connects with Remote Desktop and gets their own Windows session on the host. The install contains three parts in a single file:

One seat is one user account on one licensed host.

2. Host requirements

Required

Not required

Optional

3. The installer

3.1 One file

Distribution is a single file: MultiDeskKoreSetup.exe. It is produced by build-all.bat and contains the service, the session layer, and the whole web console embedded inside it. There are no loose files to copy alongside it.

3.2 Commands

Run from an elevated Command Prompt on the host (right-click → Run as administrator):

Command What it does
MultiDeskKoreSetup.exe install [licence-key] [admin-password] Fresh install. Licence key and admin password are both optional on the command line; if omitted, the installer prompts for them.
MultiDeskKoreSetup.exe upgrade [licence-key] [admin-password] Upgrade an existing install. Users, sessions, and settings are kept.
MultiDeskKoreSetup.exe verify Run the verification checks (0–35) and report PASS/FAIL per check.
MultiDeskKoreSetup.exe uninstall [--keep-data \| --delete-data] Remove MultiDeskKore and restore the stock Windows session behaviour.

3.3 What the installer asks for

Licence key — a command-line argument, or prompted interactively. Empty means "install unlicenced": the install proceeds with no licence stored — the trial is started from the console afterwards (section 6). A malformed key, a bad signature, or an old MDK1 key is refused and the install aborts with no changes. Keys are case-sensitive (MDK2 base64url) — paste exactly as issued, never retype from memory.

Admin password — a command-line argument, or prompted twice (must match, minimum 8 characters, input never shown on screen). Passing it on the command line leaves it in shell history; the prompt is preferred. The password is never stored in plain text and never logged — only a salted hash is kept.

3.4 What the installer does, in order

  1. Baseline — records the on-disk termsrv.dll hash and size before any change, so uninstall can prove the stock file is restored.
  2. Backup — backs up the current session-service setting under the product's own keys (never over a stock backup).
  3. Session layer — stops the SeatManager service (if any), stops dependent services, stops TermService, installs the session proxy, restarts the services, and runs the session-layer verification. Any failure rolls back automatically.
  4. SeatManager service — copies the service into the install folder, registers it (Automatic, LocalSystem), and starts it. Failure rolls back fully.
  5. Console files — copies the web console into the install folder. If the console files are absent the install continues with a clear warning.
  6. Config + licence + admin — creates the seats and shared folders and writes the product settings, licence record, and admin password hash.
  7. Session policy, firewall, app service, shortcuts — sets the screen-assistance (shadow) policy to "with user permission" (only when no value is set already), enables the Remote Desktop Shadow firewall rule, sets the AppIDSvc service to Automatic and starts it, and creates the MultiDeskKore Console shortcuts (Desktop and Start Menu, with the TrimKore logo icon). These four are warnings-only on failure — they never fail the install.
  8. Final verification — runs the full check set (0–35).

3.5 Shortcuts

After install there are two shortcuts, both named MultiDeskKore Console:

Both are removed on uninstall.

4. First sign-in

  1. Double-click the Desktop shortcut (or open http://127.0.0.1:8443/ in a browser on the host).
  2. Sign in with username admin and the password chosen during install.
  3. The console opens on the Sessions page.

The console is served from the host itself and works with no internet connection. Only buying seats, support tickets, and host-transfer requests need the website.

Changing the admin password later: Admin accounts → My credentials. You need the current password. This is the console admin account, not the Windows Administrator account.

If you forget the admin password: there is no password-reset link in the console. Contact TrimKore Support — do not edit the admin store files by hand.

5. Verification — checks 0–35

After install (and any time something is wrong), run:

MultiDeskKoreSetup.exe verify

Expect checks 0–35 ALL PASS. Each check prints PASS or FAIL with a short detail. The checks cover, among others: the session layer version and hash, the service running, the RDP port (3389) listening, reconnect behaviour, the shutdown lockdown, the shadow policy, the app-control service, the trial activation record, the embedded payload, the console Support section, the maintenance display, the host-transfer section, and the Help section. Checks 15 and 23–28 cover the trial key: the trial activation record (activation + 3-day expiry), hardware binding, clock-tamper detection, no retired no-key trial anchor, the record surviving uninstall, the console trial fields, and expired-trial handling. Checks 29–35 cover Increment 2 device mapping: the client registry and role store, USB redirection allowed host-wide, audio policy state (with the Q9 note), the console Client machines view, the device-redirection ops, and sessions linking to client records.

If a check fails, report its number and detail to TrimKore Support rather than working around it. A failed check after an upgrade is how a bad install is caught before users are affected.

6. Licence and trial activation

6.1 The 3-day trial

There is no no-key trial. Installing without a licence key stores no trial and starts no clock. The trial is started from the console's Licence page, after install:

  1. Get the installer first. Register on the MultiDeskKore website and verify your email. The installer is not publicly downloadable. The download link is emailed to the registered, verified email address only. That email contains a signed download link (valid 7 days) — no licence key.
  2. Install (section 3) and sign in to the console with the admin account created at install. On the first sign-in with no licence key stored, the console opens the Licence page and shows Start your free 3-day trial.
  3. Get trial key. On the Licence page, enter your name and the email address you registered and verified with. The console sends them with this host's hardware ID to the TrimKore backend (POST /api/licences/trial-key), which returns a trial key to the console. The trial key is generated from the console's Licence page and activated there. The console activates the key at once; the Licence page then shows "Trial active, N day(s) remaining — 1 host + 2 remote".
  4. Safekeeping copy. A copy of the trial key is emailed to you once, after activation, for safekeeping — "Your trial key is already active in your console. Keep this copy in a safe place for your records — you do not need to enter it anywhere." It is a record only: it is not the delivery mechanism and not the activation step.

The trial runs for exactly 3 days from activation. During the trial the product is fully functional within the host's resources — no feature limits. During the trial at most 2 remote seat accounts can be created, plus the host admin (3 users in total: 1 host + 2 remote).

At expiry, precisely:

The trial is bound to this host (hardware ID): it cannot be moved to another PC, and it cannot be refreshed by reinstalling or re-registering. The trial activation record lives outside the install folder and is not removed on uninstall — reinstalling does not restart the trial. If the host clock is set back, the trial is suspended (the Licence page shows "Trial suspended: system clock appears to have been set back… Correct the host clock and restart the service"); correct the clock and restart the service.

If a trial key was already issued for your email, or a trial was already activated on this PC, the backend refuses with "already issued" and no second trial is ever issued. Use the key already in your console, or the safekeeping copy emailed after activation. A trial key needs the backend — it cannot be issued offline. If the host is offline, the console says so plainly and no trial is faked.

The console Licence page shows the trial status and days remaining.

6.2 Activating a licence key

Two ways:

A stored key always wins over the trial. A newly stored key starts in a 14-day activation grace state while the service attempts online activation once, best-effort. The licence itself is validated locally by its MDK2 signature, so the host keeps working during grace. The Licence page shows the grace state and days remaining. After the grace period expires without activation, new users are refused. A key for a different host (hardware mismatch) is invalid immediately — that is not a grace case.

6.3 Pricing

What you buy Price (one-time)
1 seat $29.99
5-seat bundle $99.99
Each additional seat beyond five $10

Buy once. Renew support and upgrades only if you need them.

The first 12 months of upgrades and standard support are included with every licence. Optional annual renewal after that is 10% of the licence value, rounded once to cents — the console Licence page computes and shows the renewal price for the current seat count. For the 5-seat bundle, for example, the renewal is $10.00 (10% of $99.99).

6.4 Licence vs maintenance — two separate things

The Licence page shows them on separate lines:

Maintenance expiry never disables entitled functionality and never makes the licence look expired. Licence validation and the seat-account limit check only the perpetual licence, never the maintenance date.

Note: until the TrimKore backend returns a maintenance date with activation, the console shows "No expiry date recorded — the licence itself is perpetual." Absence of a date is "not recorded", never "expired".

6.5 Buying and adding seats

Licence → Buy seats opens the public buy page (multideskkore.trimkore.com/buy) with a short-lived secure token that identifies the host — plus the licence when one exists, so extra seats are offered at the upgrade price. No hardware ID, host name or licence ID appears in the page address. The buyer gives only an email address. There is no customer login and no customer account: the buy page is public and the owner portal is TrimKore-only. Payment is manual — the button only opens the page.

To add seats later, get a new licence key from TrimKore and activate it in the console. Existing users, sessions, and settings are kept.

7. Creating the first users

  1. Console → Users → + Add user.
  2. Username (for example Seat1), display name (optional), password (minimum 8 characters).
  3. Role is fixed: seat users are always Standard user. The console admin account is separate.
  4. Allow remote sign-in — on by default.
  5. Capabilities (tick to set; unticked means off):
  6. RAM limit — pre-filled 2048 MB.
  7. Disk quota — pre-filled 10240 MB.
  8. Allowed apps — an allowlist: only these apps may run.
  9. Denied apps — specific apps this user may not run (AppLocker deny-list), even though everyone else may.
  10. Shared folders — comma-separated paths assigned to this user.
  11. Transfer folder — on by default; the user's drop-box for sharing files with the host.
  12. Clipboard redirection — on by default.
  13. Drive redirection — on by default.
  14. Click Create user.

Users are created only here — never directly in Windows. A user created directly in Windows is not managed by MultiDeskKore: it has no seat accounting, no limits, and no folder isolation — and only accounts created through the console can sign in, so an account created directly in Windows is stopped at sign-in. The console admin account and BUILTIN\Administrators are exempt. (Accounts created directly in Windows during the early pilot — for example the Stage-A Seat1/Seat2 accounts — are stopped under this rule; create console-managed users instead.)

Seat accounting: one seat is one user account on one licensed host. A seat is held by an enabled account in the console user store — creating an enabled account uses the seat at once, whether or not that user has ever signed in. A user created disabled holds no seat until re-enabled, and re-enabling is refused while the limit is reached. A disconnected session stays running and resumable, and signing a session out (Kick) ends the session but does not free a seat. Disabling or deleting an account frees its seat for a new account. The console admin account is separate and does not count as a seat. See the Administrator Guide for the full rule.

8. Connecting the first client

  1. On the user's device, open a Remote Desktop client (mstsc on Windows, or any compatible RDP client).
  2. Computer: the host's address. The console Host page shows it and has a Copy address button.
  3. Sign in with the username and password created in section 7.
  4. The user gets their own desktop. First sign-in takes a little longer while Windows prepares the profile.

Reconnect: if the user closes the Remote Desktop window without signing out, the session stays running with its apps open. Reconnecting brings back the same session. To fully end a session, sign out from inside the desktop or from the console Sessions page.

9. Backup and uninstall

Backup: back up the host the way you would back up any Windows workstation. MultiDeskKore keeps its data under %ProgramData%\MultiDeskKore\ (user records, licence record, audit log, wallpapers) and its settings under HKLM\SOFTWARE\MultiDeskKore. The trial activation record also lives in that registry key and survives uninstall by design.

Uninstall:

MultiDeskKoreSetup.exe uninstall --keep-data or MultiDeskKoreSetup.exe uninstall --delete-data

Uninstall removes the service, the session proxy, the console files, and both shortcuts, and restores the stock Windows session behaviour (the recorded termsrv.dll hash is checked on the way out). --keep-data keeps user data and settings; --delete-data removes them. The trial activation record is kept either way — reinstalling does not restart the trial.

10. Moving the licence to a new host

If the host is being replaced, use Licence → Move this licence to a new host in the console (Administrator only to submit). Give a reason; TrimKore approves the transfer, which clears the old hardware binding so the key can activate on the new host. The request needs a stored licence key and an internet connection: with no key stored, a request cannot be sent; offline, it fails with a plain message and nothing is queued.


MultiDeskKore V1 · by TrimKore · trimkore.com Tested configuration: Windows 10 Pro 22H2. No customer login exists; the customer uses only the local console.


MultiDeskKore V1 · by TrimKore · trimkore.com · Tested configuration: Windows 10 Pro 22H2. The Markdown files in Docs/ are the canonical source for these pages.