Clients cannot get an address — DHCP scope exhausted or the server is not authorised
Either the pool has no free addresses, or the DHCP server has stopped serving because it cannot confirm its authorisation in Active Directory.
What you see
Clients get a 169.254.x.x address. Event 1020 for a full scope, 1044 for authorisation, 1063 for a server that stopped because it could not find a DC.
What is actually wrong
A lease duration far too long for a transient population (guest Wi-Fi with an 8-day lease is the classic), a rogue device consuming leases, or the DHCP server losing contact with AD.
Codes and articles
Fixes (2)
Reclaim addresses and right-size the lease
The scope is full.
Look at the utilisation across every scope.
Get-DhcpServerv4ScopeStatistics | Format-Table ScopeId, Free, InUse, PercentageInUse -AutoSizeSee what is actually holding the leases.
Get-DhcpServerv4Lease -ScopeId 10.0.10.0 | Group-Object AddressState | Format-Table Count, Name -AutoSizeGet-DhcpServerv4Lease -ScopeId 10.0.10.0 | Sort-Object LeaseExpiryTime | Select-Object -First 20 IPAddress, HostName, ClientId, LeaseExpiryTime
Shorten the lease so transient devices release addresses quickly. Eight hours suits guest and Wi-Fi populations far better than the 8-day default.
Set-DhcpServerv4Scope -ScopeId 10.0.10.0 -LeaseDuration 08:00:00Shortening the lease does not free anything immediately — existing leases run to their expiry. It stops the problem recurring rather than solving today's outage.
For immediate relief, extend the address range if the subnet has room.
Set-DhcpServerv4Scope -ScopeId 10.0.10.0 -StartRange 10.0.10.20 -EndRange 10.0.10.250Remove leases for devices that are long gone.
Get-DhcpServerv4Lease -ScopeId 10.0.10.0 | Where-Object { $_.AddressState -eq 'Declined' } | Remove-DhcpServerv4LeaseTurn on conflict detection so a duplicate address does not silently poison the pool.
Set-DhcpServerSetting -ConflictDetectionAttempts 1
Get-DhcpServerv4ScopeStatistics | Format-Table ScopeId, Free, PercentageInUse -AutoSizeRe-authorise the DHCP server in Active Directory
Event 1044 or 1063 — the service is running but deliberately not answering.
List the servers Active Directory has authorised.
Get-DhcpServerInDC | Format-Table DnsName, IPAddress -AutoSizeA Windows DHCP server in a domain refuses to lease addresses unless it finds itself in this list. It is a rogue-server protection, and it fails closed.
Authorise it if it is missing.
Add-DhcpServerInDC -DnsName dhcp01.example.local -IPAddress 10.0.0.20Confirm the server can reach a DC — 1063 means it could not.
nltest /dsgetdc:example.localTest-NetConnection dc01.example.local -Port 389
Restart the service.
Restart-Service DHCPServerConfirm the bindings are on the right interface — a server with a second NIC often binds to the wrong one.
Get-DhcpServerv4Binding | Format-Table InterfaceAlias, IPAddress, BindingState -AutoSize
Get-DhcpServerv4Statistics | Format-List TotalScopes, TotalAddresses, AddressesInUse, AcksRelated faults
Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.