Site icon Think PowerShell

Configuring Windows DHCP, Part 1: Installing the DHCP Server Role

Use PowerShell to configure a Windows DHCP server, starting with the installation of the DHCP Server role.

Windows DHCP Server and PowerShell

If you are running an Active Directory network with Active Directory integrated DNS, you are likely also running Windows DHCP server for managing the automatic assignment of IP addresses to network clients. This post is the first in a series of how to install and configure a Windows DHCP Server using PowerShell, which will allow you to author a build script ahead of implementation, as well as handle some transitional activities from a previous Windows DHCP server.

A DHCP Server is a good candidate for using Desired State Configuration, and there is a DSC resource for managing a DHCP server, which we will cover at the tail end of this post series. But first we will demonstrate the usage of the various DHCP server related cmdlets.

DHCP Lab Environment Overview

Below is a diagram of our lab environment:

lab.thinkpowershell.com: DHCP Demo

Installing the DHCP Server Windows Features

Before we can start configuring DhcpDemo, we need to install the related Windows Features for DHCP Server. Open an elevated PowerShell session and run Get-WindowsFeature to list available DHCP related features:

PS C:\Windows\system32> Get-WindowsFeature -Name *DHCP*

Display Name                                            Name                       Install State
------------                                            ----                       -------------
[ ] DHCP Server                                         DHCP                           Available
        [ ] DHCP Server Tools                           RSAT-DHCP                      Available

We want to install the DHCP Server feature, and it is likely we will want to include the DHCP Server Tools as well. We can either explicitly specify to install the RSAT-DHCP feature, or we can use the -IncludeManagementTools switch:

# Install DHCP Server and explicitly install DHCP Server Tools (RSAT-DHCP)
Install-WindowsFeature -Name DHCP,RSAT-DHCP

# OR #

# Install DHCP Server with -IncludeManagmentTools, which implies to also install DHCP Server Tools (RSAT-DHCP)
Install-WindowsFeature -Name DHCP -IncludeManagementTools

In our example, we will use the second option leveraging the -IncludeManagementTools switch. For this feature install, no server restart is required.

Installing…
PS C:\Windows\system32> Install-WindowsFeature -Name DHCP -IncludeManagementTools

Success Restart Needed Exit Code      Feature Result                               
------- -------------- ---------      --------------                               
True    No             Success        {DHCP Server, Remote Server Administration...

Authorize DHCP Server in Active Directory

When a DHCP Server is installed on an Active Directory domain joined computer, the DHCP Server needs to be authorized in Active Directory before it can start handing out address leases. We use the Add-DhcpServerInDC cmdlet. This cmdlet needs to be ran by a member of Domain Admins. If the cmdlet is ran locally on the DHCP Server, no additional parameters are required, but in the event you are running it on a remote system or for completeness, we can use the DnsName parameter and the name of the new server:

# Authorize new DHCP Server in Active Directory
Add-DhcpServerInDC -DnsName DhcpDemo.lab.thinkpowershell.com

Configuring DHCP Server Relay

There is some required configuration outside of our Windows environment involving our network infrastructure. We need to configure DHCP Server relay settings on our gateway interfaces. In our lab scenario, this setting is on tpslabfw1, our OPNSense firewall router. I will disable the built-in DHCP Server service and set the DHCP Server Relay to 192.168.1.15, the IP of DhcpDemo. You will have to work with your network team or research your own network devices to determine what is required to enable proper DHCP relay.

Enabling OPNSense DHCP Relay.

Next Steps: Ready for configuration

Our server is now ready for configuration to hand out IP addresses to DHCP clients. In the next post, we will cover creating DHCP scopes using PowerShell.

Exit mobile version