Server · Windows Server
Install Windows Server: from bare metal to first boot, step by step
This tutorial takes a blank physical server — no operating system, possibly straight out of the rack — to a verified first boot you can administer remotely: inspect the hardware, set the firmware, build bootable media, run the installer with the disk choice made deliberately, then close the gap between "Windows is installed" and "this is a server" with drivers, updates, networking, remote access and a readiness check. Each section ends where a real administrator's workflow does, and every hands-on step shows what to observe so you're verifying, not following.
The walkthrough is written against current releases (Windows Server 2022 and 2025), with 2019 noted where its behavior differs. Some specifics — exact setup screens, available editions, feature names, minimum specs — depend on the release and on your hardware vendor's firmware, so where a step depends on either, the dependency is stated explicitly. Universal principles (UEFI boot mode, storage-controller behavior, media verification, partition structure) don't change between releases, and those are the parts to keep in your head.
Before you start, two things. First, you need: a physical server, console access (monitor and keyboard, or an out-of-band management interface), a network connection to your management network, a supported installation medium with the correct Windows Server edition, and — for production — a valid license. Second, the warning that outranks every other step in this tutorial: installing Windows Server on a disk destroys everything on that disk. If the server holds data you care about, back it up or choose a different disk — and confirm the target positively in Section 05 before touching any button.
Category A · Preparation
Scope, versions and preparation
Five minutes of preparation here prevents most of the failures in the sections that follow. The single most common installation disaster isn't a bad disk choice or a wrong driver — it's discovering halfway through that the ISO is for the wrong license channel, or that the "empty" server actually held something.
What this tutorial covers — and what it doesn't
The scope is one physical server, installed from local media (USB or vendor virtual media), ending at a verified, remotely administrable first boot with a backup plan in place. It deliberately does not cover domain architecture, role design, Hyper-V clustering, or fleet imaging (PXE/WSIM) — those are separate workflows that build on top of what you produce here. If your job is to image twenty identical boxes, the preparation and post-install sections still apply to each one, but the media step moves to your imaging toolchain.
Which release, and why you should verify the current numbers
Microsoft publishes hardware minimums per release, and those numbers move between versions (memory minimums, disk space for the Desktop Experience versus the Core option, supported firmware features). Rather than freezing a spec sheet that goes stale, treat the table below as the shape of the requirement and confirm the exact figures for your release on Microsoft's published system requirements before you buy or rack anything. The same goes for your hardware: vendors maintain compatibility lists for server drivers and firmware, and a server that's "generic enough" can still be missing a storage driver the installer needs.
What you need before you begin
The requirements, with the practical production column on the right — the left column is "it will install," the right column is "you'll want to run workloads on it":
| Requirement | Minimum (typical published spec) | Practical for production | Notes |
|---|---|---|---|
| Processor | 64-bit, 1 GHz or faster | Current server CPU, 4+ cores | Confirm the vendor's Windows compatibility list |
| Memory | 2 GB (less for Core on some releases) | 8 GB or more; 16 GB+ for VMs/workloads | Verify the figure for your release |
| System disk | 64 GB free | 256 GB+ SSD/NVMe | Must be the disk you intend to install on |
| Firmware | UEFI recommended (Legacy BIOS still works) | UEFI, Secure Boot where supported | Determines partition layout — set before install |
| Storage controller | AHCI or vendor HBA/RAID | RAID 1+ for the OS disk in production | Driver may be needed at setup — see Section 02 |
| Network | 1 NIC, connected | 2+ NICs: management + workload | Approved addressing details if static |
| Console access | Monitor + keyboard | Out-of-band (iDRAC/iLO/IPMI) + local | Vendor names differ; capability is the same |
| Installation medium | Bootable USB or virtual media | Verified ISO, labeled media | Must match the edition and license channel |
| Licensing | Evaluation media for a trial | Valid license matching the media channel | Retail, volume, or OEM — media must match |
Then the preparation checklist for the session itself — copy it if you're working alongside someone who will take over later:
Windows Server install — session preparation
[ ] Server model, service tag and firmware version recorded
[ ] Target disk identified; its data backed up or confirmed expendable
[ ] ISO downloaded from an authorized source; edition matches the license
[ ] Bootable USB created for UEFI and verified with a test boot
[ ] Console access ready (monitor + keyboard, or iDRAC/iLO/KVM)
[ ] Network cable to the management network connected
[ ] Approved addressing details in hand (if a static IP is required)
[ ] Server name and NTP source decided
Category B · Hardware & firmware
Inspecting and preparing the physical server
Ten minutes at the chassis and in the firmware saves hours of misdiagnosis later — a loose drive, an uninitialized virtual disk, or a boot order pointing at nothing will each produce a "mysterious" installation failure that looks like a software problem.
Inspect the chassis; confirm what's actually installed
Power and cooling. Confirm both power supplies are seated and powered (on redundant units) and that fan LEDs are green. A server that's about to run an installer for twenty minutes has no business running on one feed or with a degraded fan.
Drives and memory. Physically confirm which drive bays hold media — label the intended system disk on the face of the bay with tape. If you're adding RAM, install it now: installing the OS and then reseating memory is the worst possible order.
Console. Connect your console: monitor and keyboard locally, or the out-of-band management interface (Dell iDRAC, HPE iLO, Supermicro IPMI — the name varies, the capability is remote console, virtual media and power control). Connect one network cable to the management network; add workload NICs later. Power on last, so you're watching the POST.
Record what POST/firmware reports — CPU, memory, firmware version — in your asset notes. This is the baseline you'll compare against in Section 07, and it's the first thing a support engineer will ask for.
Firmware: the four settings that decide everything downstream
Enter the firmware setup (usually F2/Del at POST — vendor dependent) and check these. Menu names differ between vendors; the concepts don't.
| Setting | What it controls | Check before install | Risk of changing it |
|---|---|---|---|
| Boot mode | UEFI vs Legacy (BIOS) boot, and the partition style the disk must have (GPT vs MBR) | UEFI selected; matches how the disk is (or will be) partitioned | Switching mode after a disk is partitioned for the other mode requires re-partitioning (destructive) |
| Secure Boot | Only signed firmware/bootloaders are trusted | Enabled where supported; installation media is signed by Microsoft, so it boots fine | Low — but third-party media or legacy OSes may then fail to boot |
| Boot order / one-time boot | Which device the firmware tries first | Use a one-time boot option for the USB; leave the permanent order for after install | Low — reversible at any time |
| Storage controller mode | How drives are exposed: AHCI, HBA pass-through, or RAID virtual disks | Identify the controller; confirm the intended virtual disk exists (RAID) or drives pass through (HBA/AHCI) | High — changing RAID mode or clearing/initializing a virtual disk destroys the data on it |
| USB support | Whether USB devices are usable for boot | USB boot enabled | Low |
Hardware RAID versus software storage — the distinction that matters here. With a hardware RAID controller, the controller presents virtual disks to the OS: the installer sees finished, striped/mirrored disks and knows nothing about the member drives. With an HBA or plain AHCI, the OS sees the raw physical drives, and any software storage (Storage Spaces, legacy dynamic disks) is built on top later. They are different layers with different failure behaviors, and they are not interchangeable after the fact.
Two rules keep this step safe. Never change a controller's RAID mode or initialize a virtual disk without knowing what's on it — both operations discard the existing layout and data, and "foreign configuration" messages in a controller UI often mean data from another system is present, not garbage to clear. And update firmware only for a known, documented problem: a firmware update during an installation window is two variables at once, and vendor firmware for servers can be slow to roll back. If the firmware is old but working and you have no reason to touch it, that's a post-install task.
Category C · Media
Creating and verifying installation media
Most failed installs die here, before the server has even booted: a corrupt ISO, media that isn't UEFI-bootable, or an edition that doesn't match the license. Media problems are also the cheapest to fix — which is why verification belongs in this section, not in troubleshooting.
Get the ISO from an authorized source — and match it to your license
Download the Windows Server ISO through the channel your license uses: the public Microsoft download center carries evaluation media (time-limited trial, no key needed), while production images come through Volume Licensing (for volume licenses) or your subscription management portal (for Microsoft 365 / active-channel customers); OEM and retail channels have their own. This matching matters more than people expect: an ISO from the wrong channel produces "wrong edition" screens, activation failures, or feature sets that don't line up with what you paid for. Note exactly which edition (Standard or Datacenter, and the year) the download is for, and verify the file — Microsoft's download pages and tools provide integrity information; a mismatched hash means a re-download, not a debugging session.
Make it UEFI-bootable — and know why a plain copy usually isn't enough
An ISO is a disc image; a UEFI bootable USB needs a specific on-media layout (an EFI system area the firmware can hand off to the Windows bootloader). Simply copying or extracting the ISO's files to a USB drive typically produces media that boots in Legacy BIOS mode at best — fine for older firmware, wrong for the UEFI setup you configured in Section 02. Use a bootable-media creation tool that supports UEFI/GPT output (Rufus is the common one; set it for UEFI), or your vendor's imaging tooling, and let the tool manage the partitioning — don't hand-format a working installer. Use a plain USB stick in the 16–32 GB range: unusually large or exotic drives occasionally confuse server firmware. After creation, do a test boot on any available machine — a two-minute check that pays for itself the first time it catches a bad stick.
Media options compared — and when the server won't see the USB
| Option | How it works | Strengths | Limitations | Best for |
|---|---|---|---|---|
| USB, UEFI tool-created | Bootable-media tool writes UEFI-capable layout | Portable, re-creatable, works with UEFI + Secure Boot | Needs a working workstation and a USB port the firmware accepts | Default choice for physical installs |
| USB, manual file copy | ISO contents copied to a formatted USB | No tooling required | Usually boots Legacy mode only — not UEFI | Older Legacy-only firmware (rare today) |
| DVD | Burned disc | Universally readable | Slow, media degrades, most new servers lack optical drives | Legacy environments |
| Firmware virtual media | iDRAC/iLO/remote console mounts the ISO over the network | No physical media; works headless and remotely | Depends on the out-of-band stack being up | Rack servers managed out-of-band |
| Network boot (PXE/WSIM) | Firmware network-boots an image service | Scalable, standardized, unattended | Requires imaging infrastructure | Fleet deployment (outside this tutorial's scope) |
If the server doesn't recognize the USB, work the short list in order: is the drive in the firmware's one-time boot menu at all (if not — USB boot setting, try a rear USB 2.0 port, try a different stick; some firmware is picky about USB 3.0 during install)? Is the media itself valid (test-boot it elsewhere; re-verify the ISO hash)? Does the firmware show it but the setup doesn't start (recreate the media with the UEFI option — the classic symptom of a non-UEFI stick)?
Category D · Installer
Booting into Windows Server Setup
The first installer screens are where the decisions with the longest tails get made — edition and installation experience. Everything after the disk step is mechanical; these choices are what you'll be explaining in a year.
From boot to the edition screen
Boot the media. Use the firmware's one-time boot option to start from the USB (or virtual media). You should see the "Windows Server Setup" loader, then the first language screen.
Language, time and keyboard. Set the input language, time/currency format, and keyboard layout to what your team will actually use — changing these later is possible but pointless friction.
Install now. On evaluation media the edition is already determined; on retail/volume media you'll enter a product key or select the matching SKU before the edition list appears.
Verify the edition you're about to install. The screen shows Standard and/or Datacenter — exactly which appear depends on your ISO and channel. Pick the one you intend (next topic), accept the license terms, and choose Custom: Install only Windows Server (advanced).
Standard vs Datacenter, and Server Core vs Desktop Experience
Two separate decisions, often confused. Standard vs Datacenter is about licensing economics, chiefly virtualization rights: Datacenter covers an unlimited number of guest VMs on that physical host under the applicable terms, while Standard covers a limited number (two). A box that will run many VMs often ends up cheaper on Datacenter; a single-purpose file, DNS or application server usually doesn't need it. Don't default to Datacenter out of habit — the delta is real money, and the answer depends on your workload and licensing, which only you know. Server Core vs Desktop Experience is about your management style: Core is PowerShell-first with no GUI, Server Manager or local desktop — smaller footprint, smaller attack surface, and every task done via PowerShell, Windows Admin Center or remote management; Desktop Experience is the full console. On current releases you can convert between the two after install by adding or removing the GUI management features (a reboot is required), so this choice is a starting point, not a life sentence. Pick Core if you'll live in PowerShell and remote tools; pick Desktop if your team (or your comfort) needs the console.
| Choice | What it changes | Choose it when | Revisit later? |
|---|---|---|---|
| Standard | Base feature set; limited VM entitlements under the applicable licensing | Single-purpose server, few or no guest VMs | Edition upgrades are a licensing + re-activation process, not a toggle |
| Datacenter | Same core OS; unlimited guest VMs on the host under applicable terms; higher price | Heavy Hyper-V / container workloads on this box | Same as above |
| Server Core | No GUI, no Server Manager; PowerShell-first management | Managed via PowerShell / WAC / automation; security surface matters | Yes — add/remove the GUI features (reboot) |
| Desktop Experience | Full local console and Server Manager | GUI-based administration is the team's working style | Yes — strip to Core (reboot) if desired |
Category E · Installation
Storage selection and operating-system installation
This is the only destructive step in the entire tutorial. The installer will happily and permanently erase any disk you point it at — which is precisely why the discipline here is about identification before action.
Identify the target disk positively — or stop
The disk list in setup shows each disk by number, size, and current partition count. Cross-check the target against at least two independent signals: the physical label you put on the bay in Section 02, the capacity, and (on a RAID controller) the virtual disk's identity and state in the controller UI. "Disk 0, 480 GB, 0 partitions" on a server where you know the 480 GB drive is in bay 2 and was confirmed empty is a target you can act on. "Disk 1, 960 GB, 2 partitions" that you can't map to a physical bay is not — stop and identify it before touching New, Format or Next. The cost of a wrong disk here is not a re-install; it's whatever data was on that disk.
Formatting the selected disk erases everything on it — partitions, files, and any previous OS — with no undo.
If you cannot positively identify the intended disk, do not continue. Power down, label the bays, confirm via the storage controller, and come back. Every other mistake in this tutorial is recoverable; this one usually isn't.
Partitions: what setup creates, and why you don't hand-craft them
On a UEFI/GPT install, setup automatically creates the standard layout: a small EFI System partition (FAT32) holding the bootloader, a tiny Microsoft Reserved partition, the primary Windows partition (NTFS, most of the disk), and a Recovery partition (NTFS). In Legacy/MBR mode the shape differs — a System partition plus Windows and Recovery, no EFI or MSR. These differences are consequences of the firmware mode and the release, not mistakes: don't treat one layout as "the correct one" and don't resize or hand-build partitions during a standard install unless you have a specific, documented reason (storage virtualization, multi-boot, vendor requirement). For a normal install, select the disk and click Next; let setup partition it.
The installation itself — what to expect, and the failure patterns worth knowing
Start the install. Select the disk → Next. Setup copies files, then restarts the server automatically. Do not power off during any stage, and do not remove the USB until the system has clearly booted out of the installer.
Watch the reboots. Several automatic restarts are normal (setup runs in stages). The first restart should come from the system disk; if the server reboots straight back to the USB installer, the boot order is still pointing at the media — remove it or set the system disk first (Section 11, row 7 covers the loop).
Know the four common failures. No disks listed at all → the storage/RAID driver is missing (load the vendor driver at setup's "Load a driver" prompt) or the controller has no initialized virtual disk. "Windows cannot be installed to this disk" with a GPT/MBR message → firmware boot mode and disk partition style disagree — stop and resolve the mode question, never by converting a disk that holds data. A BSOD during driver installation (commonly INACCESSIBLE_BOOT_DEVICE) → the storage driver doesn't match this controller/firmware combination; remove it or use the vendor's correct one. Stalls at the same point in "installing updates" → suspect media integrity, RAM, or power: re-verify the hash, reseat memory, confirm both feeds are live.
Category F · First boot
First boot and initial administrator access
The out-of-box experience is short on Windows Server — and the one input it asks for (the administrator password) is the most consequential credential this machine will ever hold.
The administrator password: the master key
On current releases, setup prompts for the local Administrator password before the first sign-in. Meet the complexity policy, and treat this credential as the highest-value secret the server will hold: store it in your team's credential manager, not on a sticky note on the chassis, not in a shared spreadsheet, not in your personal notes app. If this password leaks, every other control on the box is decoration. From here on, the habit that keeps servers safe is the same one everywhere: the default Administrator account is reserved for emergencies and break-glass work, and day-to-day administration happens from a named account (Section 09 covers setting that up).
The first screen — and what it does and doesn't mean
With the Desktop Experience, you sign in and Server Manager opens: the Local Server dashboard already shows the three facts you'll change in the next sections — the computer name (a temporary WORKGROUP\<name>), remote management status, and the firewall state. With Server Core, you get a PowerShell prompt: no desktop, no Server Manager, and — importantly — no loss of capability, because the same machine is managed through PowerShell, Windows Admin Center, and remote tools exactly as a desktop server is. Either way, note the difference this moment marks: a successful installation is not a configured server. The OS is running, but the name is a placeholder, the networking is whatever DHCP handed out, no roles are installed, nothing is backed up, and remote administration isn't verified. Everything from here to Section 10 is closing that gap.
Category G · System
Drivers, updates and system identification
Before building anything on this box, confirm what the installation actually detected. A server with a silently missing NIC driver or a RAID controller running on a generic driver "works" — until the day the generic driver's limits matter.
Verify what was detected
On a Desktop Experience install, Device Manager is the quick visual: any device with a warning, or listed under "Other devices," is missing a driver. On any installation — including Core — PowerShell gives you the same answer without a GUI, and it's the form you can paste into your records:
# Read-only: devices with errors or missing drivers
Get-PnpDevice | Where-Object { $_.Status -eq 'Error' -or $_.Problem } |
Format-Table FriendlyName, Status, Problem, Class -AutoSize
# Read-only: full device inventory for the asset record
Get-PnpDevice -PresentOnly | Format-Table FriendlyName, Status, Class -AutoSize
If the first query returns nothing, you're done with drivers. If it returns rows, get the driver from the server hardware vendor's support site (search by model or service tag) for the exact OS version — not a consumer driver, not a "similar" model. Server NIC and storage drivers in particular have firmware-adjacent behavior that generic versions get wrong. Install, reboot if prompted, and re-run the check: the goal state is an empty error list, and you verify that state rather than assuming it.
Record the system accurately
Support tickets, change documents, and your own future self all run on this baseline record. Capture it once, now, while the system is a known state:
# Read-only: record the installed system (baseline for support and change docs)
Get-CimInstance Win32_OperatingSystem |
Select-Object Caption, Version, OSArchitecture, LastBootUpTime
Get-CimInstance Win32_ComputerSystem |
Select-Object Manufacturer, Model, TotalPhysicalMemory
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' |
Select-Object ProductName, DisplayVersion, CurrentBuild
Get-HotFix | Select-Object -First 10 HotFixID, Description, InstalledOn
Keep this output with the asset record: product name, version and build confirm you installed the edition you intended (a mismatch here means the wrong ISO was used — stop and review before going further); LastBootUpTime becomes your reference for "has it rebooted since the last update?" in later sections.
Updates — and the reboot you're planning for
Run Windows Update and install what's offered, planning the reboot as a step rather than discovering it as a surprise: cumulative updates, .NET updates and feature updates on current releases all reboot. The sequence is the whole method: install → reboot → verify. Verification means re-checking Get-HotFix for the expected updates and comparing LastBootUpTime to confirm the reboot actually happened — a server that "still" shows yesterday's boot time after you installed a cumulative update is a server you haven't finished updating.
Category H · Networking
Network and basic system configuration
A server that can't be reached reliably by name and address isn't a server yet — it's a computer in a rack. This section gives it an identity: a real name, the right time, and addressing that matches your network's design.
Name, time zone and clock source
Three identity settings, all change commands, all placeholders — use values approved for your environment. The name must be valid and unique in your DNS/Active Directory namespace (if you'll join a domain, the name is consumed there, so confirm it's free first); the rename reboots the machine. The time zone and NTP source matter far more than they look: logs, scheduled tasks, and — in any domain environment — Kerberos authentication all assume the clock is right, and "the server's time is five minutes off" is a classic source of auth failures that are very hard to trace. Set the approved NTP source now rather than discovering drift in a week.
# Changes configuration — all values below are PLACEHOLDERS.
# Use only the name, zone and NTP sources approved for your environment.
Rename-Computer -NewName 'SRV-FILE-01' -Force # placeholder name; requires a reboot
Set-TimeZone -Id 'Eastern Standard Time' # placeholder time zone
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\Parameters' `
-Name NtpServer -Value 'time1.example.com,time2.example.com' # placeholder NTP servers
Restart-Service W32Time
w32tm /resync
w32tm /query /status # verify: source + offset
Read what you have before you change anything
# Read-only: current network state, all adapters
Get-NetIPConfiguration | Format-List InterfaceAlias, InterfaceDescription,
IPv4Address, IPv4DefaultGateway, DnsServer
Get-NetAdapter | Select-Object Name, Status, LinkSpeed, MacAddress
Read the output the way a network engineer would: which adapter is the management interface, what's its alias (you'll use that string in the next block), is the address from DHCP or manual, what gateway and DNS does it have, and is the link actually up at the speed you expect. This snapshot is your "before" — keep it, and re-run it after every change in this section.
DHCP vs static — and the rule about addresses you don't own
| Aspect | DHCP | Static |
|---|---|---|
| Where the address comes from | A DHCP server assigns it | You assign it, deliberately |
| Stability | Can change at lease renewal (mitigate with a reservation) | Fixed until changed |
| Appropriate when | Test/lab servers; or production with a DHCP reservation | Management interfaces and most production servers, per your network design |
| What you need first | A working DHCP scope for the VLAN | Approved address, prefix, gateway and DNS from the network team |
| Main risk | The server moves address and something that hard-coded it breaks | A conflict: your address is already someone else's |
Whichever the design calls for, the rule is the same: get the approved addressing details before you assign a static address. Guessing an address inside a range you don't manage doesn't create a problem on your server — it creates a silent outage for the machine that already owns it, and the conflict can be confusing to trace from both ends. If your environment uses DHCP reservations for servers, that's a legitimate "static in effect" — the address is still deliberately owned, just assigned by the DHCP server.
Apply the addressing (PowerShell) — then verify it behaves
Every value in this block is a placeholder; replace with your approved details before running. New-NetIPAddress adds an address — if the adapter currently has a DHCP address you want gone, use -RemoveOtherIPAddresses; Set-DnsClientServerAddress replaces the DNS list for that interface. Then verify three independent things: the configuration reads back correctly, the gateway answers, and DNS actually resolves — a server that "has" an IP but can't resolve names is only half configured.
# Changes configuration — ALL values below are PLACEHOLDERS.
# Use only the interface alias, address, prefix, gateway and DNS
# servers approved by your network team.
$if = 'Ethernet 2' # placeholder interface alias
New-NetIPAddress -InterfaceAlias $if -IPAddress '10.0.20.45' `
-PrefixLength 24 -DefaultGateway '10.0.20.1'
Set-DnsClientServerAddress -InterfaceAlias $if `
-ServerAddresses @('10.0.20.2','10.0.20.3')
# Verify (read-only):
Get-NetIPConfiguration -InterfaceAlias $if
Test-NetConnection -ComputerName '10.0.20.1' -InformationLevel Ping # gateway reachable
Resolve-DnsName -Name 'dc.example.com' -Server '10.0.20.2' # DNS resolves (placeholder name)
Category I · Security
Remote administration and essential security
Before you walk away from the console, the server has to be manageable — from your normal workstation, over the management network, through a path you understand. That's the bar this section sets; "I can get in somehow" isn't it.
Choose the remote path deliberately
Windows Server gives you more than one way in, and they're not interchangeable: Remote Desktop (TCP 3389) is the built-in graphical path — fine for administration on a trusted management network; PowerShell remoting (WinRM, TCP 5985/5986) is the scriptable path that automation and Windows Admin Center build on; and your vendor's out-of-band console (iDRAC/iLO) is the last resort that works even when the OS is down. The default posture: enable RDP on the management network, keep WinRM at its secure defaults, and treat out-of-band as emergency access. The line you should never cross: exposing 3389 (or any admin service) directly to untrusted networks or the internet. If you need reach across untrusted networks, the answer is a VPN or a jump host in front — not a wider firewall hole.
# Changes configuration: allow Remote Desktop connections on this server
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' `
-Name fDenyTSConnections -Value 0
# Read-only: confirm the setting took effect (0 = RDP allowed)
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' |
Select-Object fDenyTSConnections
Firewall: verify and scope — don't disable
Windows Defender Firewall is on by default on all three profiles, and it stays on. The one rule that matters for remote administration is the Remote Desktop rule, which is evaluated per profile (Domain, Private, Public) — so "RDP is blocked" is usually a profile mismatch, not a broken firewall. Check the state with the read-only block below, and enable the RDP rule only for the profile(s) that match how this server's network is classified in your environment (typically Private and/or Domain — not Public, unless your network design explicitly says so). The anti-habit worth naming: disabling the firewall to "test whether it's the firewall" is a scoped, temporary, last-resort diagnostic — never a standing state, and never the fix.
# Read-only: firewall profiles (all three should be Enabled)
Get-NetFirewallProfile | Select-Object Name, Enabled
# Read-only: Remote Desktop rule state per profile
Get-NetFirewallRule -DisplayName 'RemoteDesktop*' |
Select-Object DisplayName, Enabled, Profile
Accounts, logs, and the first safety net
Least privilege in practice: create a named administrator account for your own day-to-day work, keep the default Administrator for emergencies and break-glass, and don't run workloads or services under admin accounts. (When the server later joins a domain, group policy takes over much of account management — that's a change, not a replacement, of these habits.) Give the logs a first look now, while the system is a known baseline: the System and Security logs are where driver faults, service failures, and logon events show up, and knowing what "normal" looks like on day one is what makes day thirty diagnosable.
# Read-only: first look at the two most useful logs
Get-WinEvent -LogName System -MaxEvents 15 |
Format-Table TimeCreated, LevelDisplayName, ProviderName, Id
Get-WinEvent -LogName Security -MaxEvents 15 |
Format-Table TimeCreated, LevelDisplayName, ProviderName, Id
Finally, the backup. Install the Windows Server Backup feature and take a first image now — a clean, pre-workload baseline is the most valuable backup you'll ever take, and the restore procedure gets documented while the install is still fresh in your head (vendor or third-party backup is an equally valid plan; the requirement is a tested plan, not a specific product).
# Changes configuration: install the Windows Server Backup role
Install-WindowsFeature Windows-Server-Backup
# Read-only: confirm the role is present
Get-WindowsFeature Windows-Server-Backup | Select-Object Name, InstallState
Category J · Verification
Verification and production-readiness assessment
"The desktop came up" is not "the server is ready." This section is the difference, checked item by item — each with the observation that confirms it, so you can sign the checklist with evidence instead of confidence.
The verification pass
Boots from the system disk. Remove the USB (or unmount virtual media) and reboot. The server comes up on its own. If it loops back to the media, the boot order was never finalized — set the system disk first in firmware.
Edition and version as intended. Re-run the identification block from Section 07. Product name, version, build and architecture match the ISO you meant to install — and the record is in the asset file.
Storage is healthy and complete. All expected disks are present (Get-Disk, Get-PhysicalDisk), volumes are mounted (Get-Volume), and — on a RAID controller — the controller UI reports the virtual disk optimal, not degraded.
Drivers are complete. The error-device query from Section 07 returns nothing.
Network is working, not just configured. Get-NetAdapter shows the management link up at the expected speed; the address, gateway and DNS read back as approved; Test-NetConnection reaches the gateway and a known host; DNS resolves.
Time is correct and synchronized. w32tm /query /status shows the approved source and a small offset.
Updates are applied and verified. Get-HotFix shows the expected updates and LastBootUpTime confirms the post-update reboot happened.
Administrative access works as designed. RDP (or your chosen path) connects from the workstation with the named admin account — not just the console, not just the default account.
Firewall posture is right. All profiles enabled; the RDP rule scoped to the intended profiles; nothing admin-facing exposed to untrusted networks.
Logs are readable and a backup exists. System and Security events are visible; the first image backup has been taken and the restore procedure is documented somewhere your team can find it.
One command block that produces most of this snapshot in a single screen — read-only, safe to run at any time:
# Read-only: one-screen readiness snapshot
Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, LastBootUpTime
Get-NetAdapter | Select-Object Name, Status, LinkSpeed
Get-NetIPConfiguration | Select-Object InterfaceAlias, IPv4Address, IPv4DefaultGateway, DnsServer
w32tm /query /status
Installed vs production-ready — the gap this tutorial deliberately leaves
Passing the ten checks means the machine is a reliable, administrable server. "Production-ready" adds what your environment requires on top: domain join and group policy (if applicable), the roles and features the workload actually needs, monitoring agents, a patch cadence, out-of-band management access confirmed from the network side, and documentation — asset record, addressing record, where the credentials live, and the recovery procedure. A fresh install is a foundation, not a building; the checklist below signs off the foundation, and the rest is the deployment that sits on it.
Quick reference
Troubleshooting reference
The twelve situations this install actually produces in the wild, with the evidence that identifies each one and the safe action — search the text or filter by phase.
12 issues
| Symptom | Likely cause | Evidence | Safe action |
|---|---|---|---|
| Boot menu doesn't list the USB drive | Media not UEFI-bootable, USB boot disabled, or port unsupported | One-time boot menu shows disks but no USB; other USB devices are seen by firmware | Recreate media with a UEFI-capable tool; enable USB boot; try a rear USB 2.0 port and a different stick |
| "No bootable device" / installer not found | Corrupt or incomplete media, or firmware selecting the wrong device | Same result on a different stick; ISO hash mismatch on the workstation | Re-verify the ISO hash, recreate the media, retry from the one-time boot menu |
| Setup shows the wrong edition, or demands an unexpected key | ISO doesn't match the license channel (retail vs volume vs evaluation) | Edition list differs from the SKU on the license | Stop; download the ISO for the correct channel before touching any disk |
| Setup lists no disks at all | Missing storage/RAID driver, or no initialized virtual disk | Drive list empty though drives are installed; controller UI shows the physical drives | Load the vendor storage driver at setup ("Load a driver"); confirm the controller has an initialized virtual disk — never initialize a disk that holds data |
| "Windows cannot be installed to this disk" (GPT/MBR message) | Firmware boot mode and the disk's partition style disagree | Message references GPT or MBR; the disk was previously prepared for the other mode | Stop; decide the intended boot mode, then convert the style or match the firmware — never convert a disk holding data you need |
| BSOD during driver installation (INACCESSIBLE_BOOT_DEVICE) | Storage driver incompatible with this controller/firmware combination | Crash names a driver; the same media works on a machine with a different controller | Re-enter setup without that driver (or with the vendor's correct one); record the driver name for the vendor |
| Setup stalls at the same point in "installing updates" | Media corruption, failing memory, or unstable power | Stall at the identical percentage on retry; the same media installs elsewhere | Re-verify the hash, reseat/swap memory modules, confirm both power feeds are live, retry |
| First reboot returns to the USB installer in a loop | Boot order still favors the media | Every reboot restarts the installer; the system disk exists and is intact | Remove the media (or unmount virtual media) and set the system disk first in firmware |
| Virtual disk not visible in the OS or controller | No virtual disk configured, or a blocked foreign configuration | Controller UI shows physical drives only, or a "foreign config" warning | Investigate the configuration first — foreign config may be another system's data; only build/clear virtual disks on confirmed-empty hardware |
| RAID state degraded or in maintenance | A member drive failed or was removed | Amber drive LED; controller UI names the failed member | Replace and rebuild per the vendor procedure before installing on that array — don't put production on a degraded array without a plan |
| No network adapter after install | Missing NIC driver | Get-PnpDevice lists the NIC with an error; Get-NetAdapter shows no active adapter | Install the vendor NIC driver for this exact OS build; reboot if prompted; re-check |
| RDP connection fails | Firewall profile mismatch, wrong address, or account not permitted | Test-NetConnection to 3389 fails from the workstation; the RDP rule's profile excludes your network profile | Check rule profiles and addressing with Section 09's read-only commands; scope RDP to the admin network — never open 3389 to untrusted networks |
| Server time drifts; auth or logging looks wrong | NTP source not set or unreachable | w32tm /query /status shows no source or a large offset | Set the approved NTP source (Section 08), resync, and confirm the offset is small |
| No issues match your search — clear the filter or choose a different phase. | |||
FAQ
Installation questions, answered
Can I install Windows Server on a disk that has data on it?
Technically the installer can target any disk, but formatting the target disk during setup destroys everything on it, with no undo. If the server holds data you need, back it up or choose a different, confirmed-empty disk. The one rule that matters more than any step in this tutorial: identify the target disk positively before touching New, Format or Next.
Do I need a license before I install?
It depends on the channel. Evaluation media can be installed without a key for a limited trial period, which is fine for labs. For production you need a valid license that matches the media: retail, volume (KMS/Active Channel), or OEM. Mismatched media is a common cause of "wrong edition" or activation problems, so download the ISO for your channel before you start.
Server Core or Desktop Experience — which should I choose?
Server Core is a PowerShell-first installation with no GUI or Server Manager: smaller footprint and a smaller attack surface, but every management task goes through PowerShell, Windows Admin Center or remote tools. Desktop Experience gives you the full console. On current releases you can switch between the two later by adding or removing the Server-Gui-Mgmt-Infrastructure and Server-Gui-Shell features (reboot required), so the choice is not irreversible.
Standard or Datacenter — is Datacenter always better?
No. The editions differ mainly in virtualization rights and price: Datacenter covers unlimited guest VMs on that host under the applicable licensing terms, while Standard covers a limited number. If the box will run many VMs, Datacenter is often the economical choice; for a single-purpose file, DNS, or application server, Standard is usually sufficient. The right answer depends on your workload and licensing, not on habit.
Why does the installer reboot several times?
That's normal: setup runs in stages (boot from media, copy files, first system boot, configuration, then the out-of-box experience) and restarts between them. Don't power the server off mid-install, and don't remove the USB until the system has booted out of the installer. If it reboots straight back to the installer every time, that's a boot-order problem, not a normal stage.
Can I install Windows Server over the network instead of USB?
Yes — fleets are commonly imaged with network boot (PXE/WSIM) or vendor virtual media pushed from iDRAC/iLO-style remote consoles. This tutorial covers the physical, single-server workflow with local media because it's the most common first install; the preparation, disk, and post-install steps are identical regardless of how the media reaches the installer.