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.

Skipping the out-of-box experience

A generalized (Sysprep) image normally comes up in Windows Setup's out-of-box experience, and recent Windows builds push hard for a Microsoft account there — on a machine with a network connection there may be no visible way past it. Deploying a deployment image now answers those screens automatically, so the PC reaches a desktop without a technician clicking through setup.

Set a local admin account and a locale on the profile to skip OOBE entirely. The deploy screen tells you which of the two is missing:

Profile hasWhat the deployed PC does
Local admin + localeBoots straight to the sign-in screen for that account. No setup prompts at all.
Local admin onlySkips the account, network, EULA and privacy screens. Still asks for region and keyboard layout.
NeitherSkips the Microsoft-account, EULA and privacy screens, but still asks for region, keyboard, and a local account name.

The account you set becomes a local administrator on the deployed machine, and it is the same account described under local admin account above — one setting, not two.

Replacement clones are unaffected. A clone keeps the source machine's existing accounts and never runs the out-of-box experience, so there is nothing to skip. ImageForge deliberately does not write the account details to a clone.
Where the password sits, briefly. Windows accepts a first-boot account password in its answer file only in plain form, so between the deployment finishing and Windows completing setup, that password is readable on the deployed machine's disk at C:\Windows\Panther\unattend.xml. Windows removes it when setup completes. Anyone who can boot that machine from other media during that window can read it — use a bench account password you rotate, not a domain administrator's.

Domain identity

Whenever a profile is applied, the deployed machine's first-boot script checks whether it's carrying an inherited domain identity and removes that identity before any new join. 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. ImageForge performs that sequence in explicit phases: authenticated domain leave, restart into WORKGROUP, activate the selected computer name, restart if required, join with the active name, then restart once more before running the profile's custom first-boot script.

FieldRequired?
Join domainLeave blank to deploy as a workgroup machine. If the captured source was domain-joined, use a domain profile with valid credentials so ImageForge can authenticate the required leave before joining the target identity.
Organizational unitOptional — defaults to the domain's default computer container when blank.
Domain join account / passwordRequired when a domain is set and also used to remove inherited domain membership. It needs rights to unjoin the captured identity and create or reuse the target computer object in the selected 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). ImageForge waits up to 60 seconds for domain discovery and allows up to three actual identity failures; required restarts do not consume that limit. If the expected restart does not occur, inspect C:\Windows\Setup\Scripts\ImageForge-firstboot.log and C:\Windows\debug\NetSetup.log.
Check the requested name in Active Directory before deploying. A computer object with that name must either be absent or reusable by the join account. Microsoft domain-join hardening can block reuse of an object owned by another account. Also remove stale duplicate HOST/NAME and RestrictedKrbHost/NAME SPNs anywhere in the forest. ImageForge now explains these cases, along with DNS, OU, credential, and domain-controller failures, in ImageForge-firstboot.log.

First-boot script

Runs once, as SYSTEM, after Windows setup and managed identity work complete 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. ImageForge's local-admin and domain work runs before this custom command. The custom command runs in an isolated child process and its start and exit code are written to ImageForge-firstboot.log, so an exit or restart inside it cannot skip or repeat managed identity setup. Keep custom work idempotent.

What applies when?

SettingAppliedWorks on
Computer nameDuring deploy, offlineAny image
Org, locale, time zoneDuring Windows setup (unattend.xml)Generalized (Sysprep) images only
Out-of-box experience skipDuring Windows setup (unattend.xml)Deployment images only
Domain leave/name activation/joinDuring Windows setup or the first local-administrator sign-in, with automatic restarts between required phasesAny image
Local adminDuring the first managed phaseAny image
Custom first-boot scriptAfter the requested name and domain membership are activeAny image
Keep Ethernet connected through the automatic restarts. Managed identity phases continue at startup as SYSTEM. If the first phase has not begun by the time Windows reaches sign-in, signing in once as a local administrator triggers the RunOnce fallback. The deploy screen lists exactly which settings are deferred, so a technician knows what is still outstanding when they hand the machine over.

On generalized images the same work may run slightly earlier, during Windows setup. It is guarded so it only ever runs once, whichever path fires.