2PXE Config File

2PXE Service Settings List

All 2PXE Service configuration is done through the 2Pint.2PXE.Service.exe.config file which is located in the 2PXE installation folder. Changes are not reflected until the service is restarted so please remember to start and stop after changes are made.

Note: Copying from word can bring the wrong type of “” quote signs, so don’t copy the quote signs into the config file.

2Pint.2PXE.Service.exe.config

The 2Pint.2PXE.Service.exe.config file has the following for configuration options, not all settings work together, so some basic logic needs to be applied. See the table at the end of this section.

EnablePowerShellExtension

Enables the PowerShell Extension, allow control of the boot process via the PowerShell script specified in the PowerShellExtenstionScript below. This will move over the boot object to PowerShell which will return the correct actions for the machine booting via the PowerShell script.

Value: ”0” to disable and ”1” to enable.

EnableSCCMExtension

Enables the SCCM Extension, can be used in conjunction with the PowerShell Extension. This requires the service to be installed on a SCCM Distribution Point and that you have access to the Site Server via the correct group membership.

Value: ”0” to disable and ”1” to enable.

EnableSCCMSQLConnection

Specifies to use a SQL connection to the Configuration Manager Database and boots the boot.wim images directly from the DP. If you don’t use this option 2PXE will use HTTP to get the boot request just like the Configuration Manager PXE Service Point and can only return one boot image per client. So SQL connection is recommended for Configuration Manager integration. Then you get the full fancy menu

Value: ”0” to disable and ”1” to enable.

ConfigMgrSQLConnectionString

Connection string to the Configuration Manager database. This is used when the SQL Connection is used by setting the EnableSCCMSQLConnection value set to 1. To allow access to the DB, add the machine account of the 2PXE server to the local group ConfigMgr_DViewAccess on the site server. Or define a separate login if you want to.

The format of the string is a typical .Net connection string URI so port and other items can be specified. For more information please refer to: https://msdn.microsoft.com/en-us/library/vstudio/system.data.sqlclient.sqlconnection.connectionstring(v=vs.100).aspx

Value: "Data Source=<ServerName>;database=<DatabaseName>;Integrated Security=True"

EnableSCCMUnknownMachinesSupport

Support unknown machine support in SCCM. On/Off. Simple as that. Imagine if all settings were this easy?

Value: ”0” to disable and ”1” to enable.

EnableSCCMMenuCountdown

Sets the countdown for when only non-mandatory (optional) task sequences are targeting the computer. After countdown the computer exits to next boot device on the computer. A value of ”0” (zero) disables this feature and the menu will prompt until a task sequence is selected. Value in milliseconds but keep the value above ”1000” otherwise it might fail.

Value: ”0” to disable and boot last deployed mandatory TS and above “1000” to enable and wait 1 second, “3000” waits for 30 seconds etc.

EnableSCCMMandatoryCountdown

Sets the countdown when one or multiple mandatory task sequence deployments are targeting the computer. A value of -1 (minus one) disables this feature and the menu will prompt until a task sequence is selected. A value of ”0” (zero) disables this feature and the computer will boot the mandatory task sequence targeted deployment with the highest deployment creation time, just like Configuration Manager does with the PXE Service Point. Value in milliseconds, zero or -1.

Value: “0” to disable and boot last deployed targeting mandatory TS and above 1000 to enable, set to -1 to disable completely and prompt the user for selection.

SCCMReportState

Instructs 2PXE to send state messages to Configuration Manager for mandatory deployments. 1 to send, 0 to not send. Set this to 0 when using a Rubicon step in the task sequence to set the PXE flag.

Value: ”0” to disable and ”1” to enable.

EnableiPXEBootLoaders

Specifies to use iPXE boot loaders instead of any Windows boot loader. When used iPXE boots the boot.wim images directly from the DP, when using SCCM and from HTTP server when using the PowerShell or default request handler. iPXE uses HTTP instead of TFTP from the RemoteInstall Directory.

Value: ”0” to disable and ”1” to enable.

iPXEF12PromptTimeout

How long is the timeout for the F12 notification for iPXE loaders for non-mandatory deployments in milliseconds. E.g. 10000 = 10 seconds

Value: ”nnnnnnn” milliseconds

UseEmbeddedBootSDI

Specifies to use an embedded boot.sdi image inside the boot.wim file under the \sms\boot\boot.sdi folder. This is always present in Configuration Manager images, so then 2PXE always uses embedded boot.sdi file regardless of this setting. For non-Configuration Manager installations, you may use a default WinPE image, and this file is not present unless added. If you cannot add this file to the boot.wim make sure this value is set to "0".

Value: ”0” to disable and ”1” to enable.

wimbootParams

Specifies the command line to wimboot, possible parameters are: gui, pause, pause=quiet, rawbcd, index=x For details see: http://ipxe.org/appnote/wimboot_architecture

Value: ”gui”

EnableiPXEAnywhereWebService

Specifies to use iPXE Anywhere Web Service.

Value: ”0” to disable and ”1” to enable.

iPXEAnywhereWebServiceURI

Specifies the address port to the iPXE Anywhere Web Service. Please see the iPXE Anywhere Web Service information on how to configure this.

Value:http:// ipxe.webservice.local:8051

RemoteInstallPath

Specifies the path to the RemoteInstall folder that contains boot files and images. It will be created if it doesn't already exist. You should always enter a local path, and can use environment variables. Sub-directories Boot, Tmp and Sources must be present immediately below this folder or they will be created by the service, so ensure you specify a path to which the service account has access.

Value: “%PROGRAMDATA%\2Pint Software\2PXE\RemoteInstall”

PowerShellExtensionAllowBootScript

Specifies the path to the PowerShell script that manages reply to the client, if any. Note that this script does not return the boot image itself, and that this script can run multiple times per boot of each client. This will only return true or false and then the initial loader will contact the PXE server again with architecture info etc. It will not be created if it doesn't already exist. You should always enter a local path, or use environment variables for a local path.

Value: “%PROGRAMDATA%\2Pint Software\2PXE\PowerShellExtensionAllowBoot.ps1”

PowerShellExtensionBootImagesScript

Specifies the path to the PowerShell script that manages reply, boot files and images. It will not be created if it doesn't already exist. You should always enter a local path, or use environment variables.

Value: “%PROGRAMDATA%\2Pint Software\2PXE\PowerShellExtensionBootImages.ps1”

EnableDebugLog

Set EnableDebugLog to "1" to enable logging to the file specified in DebugLogPath.

Value: ”0” to disable and ”1” to enable.

DebugLogPath

This log will be fairly verbose, so remember to set it to "0" to switch it off afterwards. Errors and warnings will always be logged to the 2PXE event log. Ensure that the service account has access to the path if no log is appearing.

Value: "%PROGRAMDATA%\2Pint Software\2PXE\2PXE.log"

RunHttpServer

2PXE has a built-in Web Service for iPXE integration. You can switch it off by setting the value to "0" below, for instance if you have your own iPXE Anywhere Web Service server this is not needed. The HTTP WCF service only allow access to files under the RemoteInstall directory, and cannot transfer files outside this location.

Value: ”0” to disable and ”1” to enable.

RunOnHttpPort

Sets the port for the 2PXE http WCF service to a unique value.

Value: "8050" or any other value.

RunOnDhcpPort

By default, 2PXE answers on both the DHCP (67) port and PXE (4011) port. You can control this by setting the values to "0" for off or "1" for on below, for instance if this machine also acts as a DHCP server.

Value: ”0” to disable and ”1” to enable.

RunOnPxePort

By default, 2PXE answers on both the DHCP (67) port and PXE (4011) port. You can control this by setting the values to "0" for off or "1" for on below, for instance if this machine also acts as a DHCP server.

Value: ”0” to disable and ”1” to enable.

RunTftpServer

2PXE has a built-in TFTP server, written by Jean-Paul Mikkers. You can switch it off by setting the RunTftpServer value to "0" below, for instance if you have your own TFTP server.

Value: ”0” to disable and ”1” to enable.

TftpFilter

These are the folders beneath RemoteInstallPath that the TFTP server will serve files from. Specify one or more relative wildcard paths separated by semi-colon.

Value: "boot\*;\tmp\*;\boot\*;tmp\*;\Sources\*;Sources\*"

TftpBlockSize

Tweak the values below to decrease image download times. Note that PXE BIOS, routers and other network equipment may limit these settings further. Set TftpBlockSize to 512, 1024, 1456, 2048, 4096, 8192 or 16384. Default value is 1456.

Value: ”4096” to set the block size to 4096.

TftpWindowSize

Tweak the values below to decrease image download times. Note that PXE BIOS, routers and other network equipment may limit these settings further. Set TftpWindowSize to the number of packets to send without waiting for acknowledgement. Maximum is 32, default is 1.

Value: ”16” to set to the recommended value of 16 which works on most HW.

EnableiPXEAnywhereWebService

Specifies to use iPXE Anywhere Web Service.

Value: 0 to disable, 1 to use reporting functionality only, 2 to move the entire request over to the web service + reporting. 3 is 1+2 and the ability to execute cmdline from iPXE WS in WiNPE

BootRequest = 1,

Syslog = 2, <- Using the resolved IPv4 Addresss of the iPXE Anywhere Web Service unless overridden by adding the <add key="iPXEAnywhereWebServiceIP" value="192.168.xxx.yyy"/> setting in this config.

ReportBootConfiguration = 4,

ReportDLStart = 8,

ReportDLComplete = 16,

ReportDLBoot = 32,

RunCmdLineWinPE = 64

A value of 62 (2+4+8+16+32 = 62) Gives you all but BootRequest and RunCmdLineWinpE.

For iPXE and StifleR Integration requires a minimum of; 2+4+8+16+32 = 62

iPXEAnywhereWebServiceURI

Specifies the address and port to the iPXE Anywhere Web Service. Please see the iPXE Anywhere Web Service information on how to configure this.

Value: "http://"/

Username

Username and domain name to use to access content in form of DOMAIN\Username, password is stored in the Password.config file in the same folder as the config file.

Value: [%USERDOMAIN]\[%USERNAME]"

FWTFTP

Set to 1 to create the Port 69 UDP Firewall exception as service startup

Value: ”0” to disable and ”1” to enable.

FWDHCP

Create the Port 67 UDP Firewall exception as service startup

Value: ”0” to disable and ”1” to enable.

FWPROXYDHCP

Create the Port 4011 UDP Firewall exception as service startup

Value: ”0” to disable and ”1” to enable.

FWHTTP

Create the Port 8050 TCP Firewall exception as service startup

Value: ”0” to disable and ”1” to enable.

BindToIP

When using high performance option, the underlying class does not know the route of the UDP packet, hence it needs an address to send back data from. Specify an IP address local to the machine (NIC) to use to send UDP packets from.

Value: Set to the IP address as required

UseHighPerformanceRestartableThreads

Better thread management for large organizations that do a lot of PXE requests, this requires BindToIP setting to be set.

Value: ”0” to disable and ”1” to enable.

Valid Configuration Combinations

The following list can be used to find supported and unsupported configuration combinations in this release, green indicating the “really” supported scenarios that we would like people to test:

The preceding table shows the different valid options, if you are unsure of your scenario, please contact support@2pintsoftware.com.

x86WinPEShlConfiguration and x64WinPEShlConfiguration

The x86 and x64 WinPEShlConfiguration options can be used to launch additional commands after WinPE has been downloaded, but before we hand over control to the ConfigMgr OSD Client. This is commonly used to launch custom frontends etc. Below is an example on how to launch a command prompt.

Value: Text string, can be broken up in multiple lines for readability.

[LaunchApps] %SYSTEMDRIVE%\sms\bin\x64\TsProgressUI.exe,/register:winpe %windir%\system32\wpeutil.exe,InitializeNetwork %windir%\system32\iPXEWinPEClient.exe,/SkipNetworkInit %windir%\system32\cmd.exe /c start Custom_Pause /wait cmd %SYSTEMDRIVE%\sms\bin\x64\TsBootShell.exe

Last updated