Are you tired of looking at web articles and searching for proper configuration for your DHCP servers to support full BIOS/UEFI PXE boot, function below will make it for you. It will add additional options like option 60 - PXEClient and option 150 - CiscoIPT TFTP Server, create classes for you, preconfigure policies on defined scope and add all needed options to predefined classes.

Usage - Add-DHCPServerPXEPolicies -ComputerName DNSName -ScopeID ipaddressofscope -WDSServer IPofyourWDS

DNSName = One of your DHCP servers.

ScopeID = Subnet in which you're planning to deliver DHCP parameters. You can get it by executing command Get-DhcpServerv4Scope

WDSServer = IP address of your WDS server.

Function Add-DHCPServerPXEPolicies { 
    Param ( 
    Invoke-Command -ComputerName $ComputerName -ScriptBlock { 
        # Add DHCP option 60 
        netsh dhcp server add optiondef 60 PXEClient STRING 0 comment=”Option added for PXE support” 
        # Add DHCP option 150 
        netsh dhcp server add optiondef 150 CiscoIPT IPADDRESS 0 comment="TFTP Server for Cisco Call Manager" 
        # Restart DHCP Server 
        net stop dhcpserver ; net start dhcpserver 
        # Define custom Vendor classes 
        $UEFI64 = @{ 
        Name = "PXEClient (UEFI x64)" 
        Type = "Vendor" 
        Data = "0x505845436c69656e743a417263683a3030303037" 
        Description = "PXEClient (UEFI x64)" 
        $UEFI86 = @{ 
        Name = "PXEClient (UEFI x86)" 
        Type = "Vendor" 
        Data = "0x505845436c69656e743a417263683a3030303036" 
        Description = "PXEClient (UEFI x86)" 
        $BIOS = @{ 
        Name = "PXEClient (BIOS x86 & x64)" 
        Type = "Vendor" 
        Data = "0x505845436c69656e743a417263683a3030303030" 
        Description = "PXEClient (BIOS x86 & x64)" 
        # Add defined classes into DHCP server 
        Add-DhcpServerv4Class @UEFI64 
        Add-DhcpServerv4Class @UEFI86 
        Add-DhcpServerv4Class @BIOS 
        # Create policies for target scope 
        Add-DhcpServerv4Policy -Name $UEFI64.Name -ScopeId $($Args[0]) -Condition And -VendorClass EQ,"$($UEFI64.Name)*" -Enabled $True 
        Add-DhcpServerv4Policy -Name $UEFI86.Name -ScopeId $($Args[0]) -Condition And -VendorClass EQ,"$($UEFI86.Name)*" -Enabled $True 
        Add-DhcpServerv4Policy -Name $BIOS.Name -ScopeId $($Args[0]) -Condition And -VendorClass EQ,"$($BIOS.Name)*" -Enabled $True 
        # Add options to previously configured policies 
        # UEFI X64 
        Set-DhcpServerv4OptionValue -ScopeId $($Args[0]) -PolicyName $UEFI64.Name -OptionId 60 -Value "PXEClient" 
        Set-DhcpServerv4OptionValue -ScopeId $($Args[0]) -PolicyName $UEFI64.Name -OptionId 66 -Value $($Args[1]) 
        Set-DhcpServerv4OptionValue -ScopeId $($Args[0]) -PolicyName $UEFI64.Name -OptionId 67 -value "smsboot\x64\wdsmgfw.efi" 
        Set-DhcpServerv4OptionValue -ScopeId $($Args[0]) -PolicyName $UEFI64.Name -OptionId 150 -Value "$($Args[1])" 
        # UEFI X86 
        Set-DhcpServerv4OptionValue -ScopeId $($Args[0]) -PolicyName $UEFI86.Name -OptionId 60 -Value "PXEClient" 
        Set-DhcpServerv4OptionValue -ScopeId $($Args[0]) -PolicyName $UEFI86.Name -OptionId 66 -Value $($Args[1]) 
        Set-DhcpServerv4OptionValue -ScopeId $($Args[0]) -PolicyName $UEFI86.Name -OptionId 67 -value "smsboot\x86\wdsmgfw.efi" 
        Set-DhcpServerv4OptionValue -ScopeId $($Args[0]) -PolicyName $UEFI86.Name -OptionId 150 -Value "$($Args[1])" 
        # BIOS 
        Set-DhcpServerv4OptionValue -ScopeId $($Args[0]) -PolicyName $BIOS.Name -OptionId 60 -Value "PXEClient" 
        Set-DhcpServerv4OptionValue -ScopeId $($Args[0]) -PolicyName $BIOS.Name -OptionId 66 -Value $($Args[1]) 
        Set-DhcpServerv4OptionValue -ScopeId $($Args[0]) -PolicyName $BIOS.Name -OptionId 67 -value "smsboot\x64\" 
} -ArgumentList $ScopeID,$WDSServer -ErrorAction SilentlyContinue}