Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Powershell script to add DHCP vendor class and policies to allow Legacy BIOS based network booting (PXE) based upon information sent by client detailed in RFC 4578 (
None - execute directly from Powershell
James Pettigrove
Windows 7, Windows 10
v1.0, 20170401 - Initial Version
$dhcpServers = Get-DhcpServerInDC
$className = "PXEClient(Legacy BIOS)"
$classData = "PXEClient:Arch:00000"
$classDesc = "PXEClient:Arch:00000"
$policyName = "Legacy BIOS"
$policyDesc = "Policy for Legacy BIOS based network booting"
[array]$dhcpScopes = (Read-Host "Enter DHCP Scopes (separate with comma) to apply Legacy BIOS boot option").split(",") | %{$_.trim()}
foreach ($dhcpServer in $dhcpServers) {
Write-Host -ForegroundColor Yellow "Checking if $className exists on $dhcpServer"
$classExist = Get-DhcpServerv4Class -ComputerName $dhcpServer -Name $className -Type Vendor -ErrorAction SilentlyContinue
if (-Not $classExist) {
Write-Host -ForegroundColor Yellow "Adding $className to $dhcpServer"
Add-DHCPServerv4Class -ComputerName $dhcpServer -Name $className -Type Vendor -Data $classData -Description $classDesc
Foreach ($dhcpScope in $dhcpScopes) {
Write-Host -ForegroundColor Yellow "Adding $policyName to $dhcpScope"
Add-DhcpServerv4Policy -ComputerName $dhcpServer -ScopeId $dhcpScope -Name $policyName -Description $policyDesc -Enabled $true -Condition OR -VendorClass EQ,"$className*"
Set-DhcpServerv4OptionValue -ComputerName $dhcpServer -ScopeId $dhcpScope -PolicyName $policyName -OptionId 066 -Value "PXESERVER.local"
Set-DhcpServerv4OptionValue -ComputerName $dhcpServer -ScopeId $dhcpScope -PolicyName $policyName -OptionId 067 -Value "SMSBoot\x86\"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment