For office printers, use a DHCP reservation in most cases: the DHCP server hands the printer the same address every time, and you still manage the gateway, DNS servers and lease settings in one place. A static IP configured on the printer also works, but it moves that management onto each device and risks address conflicts if the address is also inside the DHCP pool.
Who this is for and what you will have
This guide is for small-business administrators who run, or are about to run, a DHCP server (Windows Server in this guide) and need printers, scanners, copiers, door controllers or similar devices to keep stable addresses. By the end you will have:
- A clear rule for which devices get a reservation and which get a static address.
- An address plan that separates the dynamic pool, reserved addresses and static infrastructure.
- Reservations created with PowerShell or the DHCP console.
- A way to verify them and fix the usual problems.
How the two approaches differ
A static IP address is typed into the device. A reservation is a record on the DHCP server that says "this MAC address always gets this IP address". Microsoft's DHCP documentation describes reservations as reserved IP addresses associated with particular DHCP clients, which allows consistent assignment of a single IP address to a single client.
| Aspect | DHCP reservation | Static IP on the device |
|---|---|---|
| Where the address is set | DHCP server | Device web page or panel |
| Gateway, DNS and other options | Delivered by DHCP, changed once | Typed per device |
| Moving the device to another subnet | Create a new reservation in the right scope | Reconfigure the device |
| Works when DHCP server is down | Only while the existing lease is valid | Yes |
| Risk of duplicate address | Low if the reservation is in the scope | Higher if no one records addresses |
| Visibility | One list on the server | A spreadsheet or discovery tool |
| Device needs special support | No; it is a normal DHCP client | Needs a settings interface |
The main advantage of reservations is central control. Without DHCP, Microsoft notes, addresses must be configured manually and addresses of removed computers must be reclaimed by hand. With a reservation you keep that central management and still get a fixed address.
When a static address is still the right choice
- The DHCP server itself. Microsoft's quickstart lists a static IPv4 address as a prerequisite for the server.
- Domain controllers, DNS servers, firewalls, routers and switch management interfaces, which other systems and DHCP depend on.
- Devices that must be reachable during a DHCP outage and cannot rely on a lease.
For everything else that merely needs a predictable address, such as printers, multifunction devices, network scanners, IP cameras and badge readers, a reservation is easier to maintain.
Plan the address space
Decide the layout before creating anything. A common arrangement for a /24 network looks like this:
| Range | Purpose |
|---|---|
| 10.10.10.1 to 10.10.10.20 | Static infrastructure (gateway, servers, switches) |
| 10.10.10.21 to 10.10.10.99 | Reservations for printers and fixed devices |
| 10.10.10.100 to 10.10.10.200 | Dynamic pool for laptops, phones and guests |
| 10.10.10.201 to 10.10.10.254 | Spare |
Microsoft's quickstart builds a scope from 10.10.10.100 to 10.10.10.200 with the mask 255.255.255.0. The reservation cmdlet reserves an address "in the scope", and exclusion ranges are defined for a scope, so for this plan define the scope as 10.10.10.21 to 10.10.10.200 and add an exclusion range for 10.10.10.21 to 10.10.10.99 (shown later). Addresses outside the scope range, such as the static block at the bottom, are simply never offered by the server.
This is an example plan, not a requirement. Choose ranges that fit your subnet, and record them somewhere the next administrator will find.
Prerequisites
-
A Windows Server with the DHCP Server role installed. The role installs with
Install-WindowsFeature DHCP -IncludeManagementToolsand does not need a reboot. -
In an Active Directory domain, the server must be authorised. Microsoft notes that an unauthorised DHCP server in a domain does not lease addresses to clients. Authorise it with
Add-DhcpServerInDC -DnsName DHCP1.corp.contoso.com -IPAddress 10.0.0.3and confirm withGet-DhcpServerInDC. -
An existing IPv4 scope. If you do not have one, this command from the Microsoft documentation creates one (it is active by default, and the default lease duration is 8 days):
Add-DhcpServerv4Scope -Name "Office LAN" -StartRange 10.10.10.21 -EndRange 10.10.10.200 -SubnetMask 255.255.255.0 -
The scope options (router and DNS servers) set, for example:
Set-DhcpServerv4OptionValue -ScopeId 10.10.10.0 -OptionId 6 -Value "10.10.10.5","10.10.10.6" -
The MAC address of each device. Print a configuration page from the printer or read the label on the back.
Create a DHCP reservation
With PowerShell
The syntax of Add-DhcpServerv4Reservation takes the scope ID, the IP address and the client ID. Once reserved, the address is leased only to the client identified by that ID.
Add-DhcpServerv4Reservation -ScopeId 10.10.10.0 -IPAddress 10.10.10.30 -ClientId "F0-DE-F1-7A-00-5E" -Name "PRN-FRONTDESK" -Description "Reservation for front desk printer"For Windows clients the MAC address is used as the client ID. Use the hyphen-separated format shown in Microsoft's examples.
Create several at once from a CSV file. The documentation shows this pattern with Import-Csv, where the file has the header ScopeId,IPAddress,Name,ClientId,Description:
Import-Csv -Path "Reservations.csv" | Add-DhcpServerv4Reservation -ComputerName "dhcpserver.contoso.com"A sample file:
ScopeId,IPAddress,Name,ClientId,Description
10.10.10.0,10.10.10.30,PRN-FRONTDESK,F0-DE-F1-7A-00-5E,Front desk printer
10.10.10.0,10.10.10.31,PRN-ACCOUNTS,F0-DE-F1-7A-00-6F,Accounts copierConvert an existing lease
If the printer already has a working address that you want to keep, convert its lease into a reservation. This pipes the lease object to the cmdlet, which creates the reservation from the lease's IP address and client ID:
Get-DhcpServerv4Lease -ComputerName "dhcpserver.contoso.com" -IPAddress 10.10.10.110 | Add-DhcpServerv4Reservation -ComputerName "dhcpserver.contoso.com"With the DHCP console
- Open Windows Administrative Tools > DHCP.
- Expand the server and the IPv4 node, then the scope.
- Right-click Reservations and select New Reservation.
- Enter a reservation name, the IP address and the MAC address of the device, then add it.
Pick a free address
To choose any free address in a scope rather than one you selected, use the pattern from the cmdlet reference:
$FreeIP = Get-DhcpServerv4FreeIPAddress -ComputerName "dhcpserver.contoso.com" -ScopeId 10.10.10.0
Add-DhcpServerv4Reservation -ComputerName "dhcpserver.contoso.com" -ScopeId 10.10.10.0 -IPAddress $FreeIP -ClientId "F0-DE-F1-7A-00-5E" -Description "Reservation for Printer"Keep reserved addresses out of the pool
A reservation can use an address inside the dynamic range, but then you must make sure nobody else holds it at the moment you create it. A cleaner approach is to add an exclusion range for the block you set aside for reservations (this is the 10.10.10.21 to 10.10.10.99 block from the plan, which sits inside the scope defined above):
Add-DhcpServerv4ExclusionRange -ScopeId 10.10.10.0 -StartRange 10.10.10.21 -EndRange 10.10.10.99Excluded addresses are not leased to any client. The one exception, as the cmdlet documentation states, is reservation: a reserved address is still leased to its designated client even if it falls in the exclusion range. That makes an exclusion range a good home for reservations, because ordinary clients cannot take those addresses.
Configure the printer to use DHCP
The printer must be set to obtain its address automatically. Many printers ship with DHCP enabled, but devices that were set to a static address during a previous setup will ignore the reservation.
- Open the printer's network settings from its panel or web page.
- Set the IPv4 method to automatic or DHCP.
- Restart the printer or its network interface so it requests a lease.
- Print the network configuration page and check the address.
If the device already holds an unexpired lease for another address, it may keep it until it renews. Release the old lease on the server or restart the device.
Configure a static address on a Windows computer or server
When a device really needs a static address, set it on a Windows machine with New-NetIPAddress. Microsoft recommends defining the prefix length and a default gateway, and notes that running the cmdlet on an interface where DHCP is enabled automatically disables DHCP:
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 10.10.10.10 -PrefixLength 24 -DefaultGateway 10.10.10.1The gateway must be in the same subnet as the address, and you must also configure the DNS servers on the interface. Keep static addresses outside the DHCP scope range or inside an exclusion range so the server never offers them to another client.
Verify the reservations
List the reservations in a scope:
Get-DhcpServerv4Reservation -ScopeId 10.10.10.0Check which clients currently hold leases:
Get-DhcpServerv4Lease -ScopeId 10.10.10.0Then confirm from the client side. Power-cycle the printer, print its configuration page and compare the address and MAC address with the reservation. From a computer, ping 10.10.10.30 should reply unless the printer blocks ICMP. DHCP audit logging, one of the Windows Server DHCP features listed in the documentation, records lease assignments and renewals and helps when you need to see what the server offered.
Troubleshooting
The printer still has a different address
Check that the MAC address in the reservation matches the one the printer sends. Printers with wired and wireless adapters use different MAC addresses for each. Check the correct scope too: the scope ID must be the network address of the subnet the printer is on, not the server's own address.
You are not sure the address is free
Before reserving an address inside the pool, check whether it is already leased with Get-DhcpServerv4Lease -ScopeId 10.10.10.0, or let Get-DhcpServerv4FreeIPAddress choose one for you as shown above.
Two devices report an address conflict
A device with a static address inside the leasable pool is the usual cause. Move the static device outside the range, add an exclusion, or convert it to a reservation.
Devices lose connectivity when the DHCP server is down
Existing leases keep working until they expire. The default lease duration for a new scope created with Add-DhcpServerv4Scope is 8 days, so short outages rarely matter, but infrastructure that must always work should be static. For redundancy, Windows Server supports DHCP failover, in which two servers share a single scope.
Reservations vanish when the server is rebuilt
Reservations live in the DHCP database. Export them with Get-DhcpServerv4Reservation before a rebuild so you can recreate them from a CSV file.
Checklist
- Address plan written down: static block, reservation block, dynamic pool.
- DHCP server has a static address and is authorised in Active Directory.
- Each printer or fixed device has a reservation matching its MAC address (one per adapter).
- Reservation addresses sit inside the scope and in an exclusion range, so the pool never hands them out.
- Printers are set to obtain an address automatically.
- Reservations verified with
Get-DhcpServerv4Reservationand a test print. - A CSV export of reservations kept with your documentation.
For wider background on DNS and DHCP concepts, see /blog/sysadmin-interview-questions-ad-dns-dhcp and /blog/dns-records-explained-a-cname-mx-txt.
References
- What is DHCP Server in Windows Server: https://learn.microsoft.com/en-us/windows-server/networking/technologies/dhcp/dhcp-top
- Install and configure DHCP Server on Windows Server: https://learn.microsoft.com/en-us/windows-server/networking/technologies/dhcp/quickstart-install-configure-dhcp-server
- Add-DhcpServerv4Reservation: https://learn.microsoft.com/en-us/powershell/module/dhcpserver/add-dhcpserverv4reservation
- Add-DhcpServerv4ExclusionRange: https://learn.microsoft.com/en-us/powershell/module/dhcpserver/add-dhcpserverv4exclusionrange
- Add-DhcpServerv4Scope: https://learn.microsoft.com/en-us/powershell/module/dhcpserver/add-dhcpserverv4scope
- New-NetIPAddress: https://learn.microsoft.com/en-us/powershell/module/nettcpip/new-netipaddress
Comments
Questions and tips are welcome. Comments are checked by the EpiFive team before they appear; please do not share passwords, phone numbers or other private details.