image-forge.net

Deployment profiles

A machine that comes out of the oven finished: named, localized, joined.

A profile is a bundle of identity settings the technician picks at deploy time. The same golden image plus a different profile produces an accounting workstation, a lab machine, or a kiosk — no per-machine fiddling afterward.

Computer name preview

Try a template before putting it in a profile. The preview applies the same 15-character NetBIOS cleanup rule.

Computer name templates

The template builds each machine's name at deploy time. Plain text passes through; tokens are replaced per machine:

TokenBecomes
{SEQ}A per-profile counter the Forge increments on every deploy: 1, 2, 3… Two technicians deploying at once can't collide — the Forge hands out the numbers.
{SEQ:03}The same counter zero-padded to the given width: 001, 002… (any width works: {SEQ:05} → 00001).
{SERIAL}The machine's SMBIOS serial number / service tag — a name that survives reimaging and matches the sticker on the case.
{ASSET}The SMBIOS asset tag, if your fleet sets one.
{MODEL}The hardware model string.

Examples: ACCT-{SEQ:03} → ACCT-001, ACCT-002, …  |  LAB-{SERIAL} → LAB-9XJ4L83.

Names are sanitized to NetBIOS rules: uppercased, letters/digits/hyphens only, trimmed to 15 characters. The rename is applied offline to the deployed image's registry, so it works on any image — sysprepped or not.

Locale and time zone

Locales are BCP-47 codes (en-US, de-DE, pt-BR…). Time zones are Windows time-zone names — run tzutil /l on any Windows machine for the full list (Eastern Standard Time, W. Europe Standard Time, UTC…). The console suggests common values as you type; anything valid is accepted. Both apply via unattend answers, which fire on generalized (sysprepped) images.

Local admin account

When set, the deploy ensures a local administrator with that name and password exists on the machine at first boot — your bench/support account, present everywhere.

The password (and the domain-join account password below) are encrypted at rest on the Forge with a key that lives only on that machine's local disk — not in the image store, so a store relocated to a NAS/UNC share never carries the key with it. A disaster-recovery backup includes the key (so a restore onto a replacement Forge still works); anyone with filesystem access to just the store, without the Forge box itself, sees ciphertext.

Domain identity

Whenever a profile with any settings below is applied, the deployed machine's first-boot script always checks whether it's currently domain-joined and, if so, leaves that domain — even if you leave every field on this page blank. This matters because a captured golden image is very often domain-joined itself: cloning it duplicates the source machine's Active Directory computer-account identity onto every deployment, which shows up later as "the trust relationship between this workstation and the primary domain failed" and used to mean unjoining and rejoining by hand on every deployed machine. The client now fixes this automatically, the same way an administrator would by hand: Remove-Computer -Force (works even when the machine can't reach a domain controller to leave cleanly), then, only if you fill in a domain below, Add-Computer with the account you provide.

FieldRequired?
Join domainLeave blank to deploy as a clean workgroup machine (still leaves any stale domain first). Fill in to rejoin automatically.
Organizational unitOptional — defaults to the domain's default computer container when blank.
Domain join account / passwordRequired only when a domain is set — needs rights to join computers to that OU.
Test against a non-production domain first — this runs as SYSTEM at first boot and needs the target machine to actually reach a domain controller to complete a new join (the leave step alone does not).

First-boot script

Runs once, as SYSTEM, after Windows setup completes on the deployed machine (SetupComplete.cmd). Use it for agent installs, config pulls, domain joins at scale — anything you'd otherwise do by hand on first login. Keep it idempotent; there is no retry UI on a machine that's already in a user's hands.

What applies when?

SettingMechanismWorks on
Computer nameOffline registry editAny image
Org, locale, time zoneunattend.xmlGeneralized (sysprepped) images
Domain leave/joinFirst-boot Remove-Computer/Add-ComputerAny image (join needs a reachable domain controller)
Local admin, first-bootSetupComplete.cmdAny image