使用 Microsoft DHCP 服务器¶
Microsoft DHCP 服务器是 Microsoft Windows 上的默认 DHCP 服务器。它可以配置为支持 iPXE。它不太容易用于支持一些更高级的 iPXE 选项;如果你有选择,你可能会发现使用 ISC dhcpd 更容易。
Microsoft DHCP 服务器使用 DHCP MMC 插件进行配置。转到 开始 -> 管理工具 -> DHCP:

右键单击 服务器选项 并选择 配置选项。你可以使用 067 启动文件名 选项指示 iPXE 启动。例如,要指示 iPXE 从 http://boot.ipxe.org/demo/boot.php 启动演示镜像,你可以向下滚动到选项 067 启动文件名 并将其设置为 http://boot.ipxe.org/demo/boot.php:

要从 SAN 启动,你必须使用 017 根路径 选项而不是 067 启动文件名 选项:

PXE 链式加载¶
要使用 PXE 链式加载,你需要设置 Microsoft DHCP 服务器,使其向传统 PXE 客户端分发 undionly.kpxe,然后只向 iPXE 客户端分发"真正的"启动配置。你可以通过告诉 Microsoft DHCP 服务器根据 DHCP 用户类使用不同的配置来做到这一点。
首先,为 iPXE 定义一个用户类。右键单击你的 DHCP 服务器并选择 定义用户类:

单击 添加 以添加新的用户类。把 显示名称 设置为 iPXE,描述 设置为 iPXE clients,ID 设置为 iPXE:

右键单击 服务器选项 并选择 配置选项。向下滚动到选项 067 启动文件名 并将其设置为 undionly.kpxe:

右键单击 策略 并选择 新建策略。创建一个只有单一条件的策略,即 用户类 等于 iPXE:

在 配置策略的设置 页面中,向下滚动到选项 067 启动文件名 并将其设置为 http://my.web.server/real_boot_script.php:

如果一切正常,你应该会看到一个策略:当 用户类 等于 iPXE 时,它会把 启动文件名 设置为 http://my.web.server/real_boot_script.php:

这将确保 iPXE 镜像(undionly.kpxe)只在 DHCP 请求来自传统 PXE 客户端时分发。一旦 iPXE 被加载,DHCP 服务器将引导它从 http://my.web.server/real_boot_script.php 启动。(你应该把 http://my.web.server/real_boot_script.php 替换为你希望 iPXE 启动的任何内容。)
较旧的 Windows 版本¶
如果你使用的是 Windows Server 2008,则无法按上述方式创建策略。改为右键单击 服务器选项 并选择 配置选项。在 高级 选项卡上,从 用户类 下拉列表中选择 iPXE。向下滚动到选项 067 启动文件名 并将其设置为 http://my.web.server/real_boot_script.php:

如果一切正常,你应该会在 DHCP 配置中看到 067 启动文件名 的两个设置:一个包含 undionly.kpxe,另一个包含 http://my.web.server/real_boot_script.php:

(你应该把 http://my.web.server/real_boot_script.php 替换为你希望 iPXE 启动的任何内容。)