New tool: ConfigMgr PXE Boot Log

Today I’m releasing a new tool for ConfigMgr admins and IT support staff!  This tool displays PXE boot events in an easy-to-view format and provides a history of PXE boot attempts on a distribution point during a selected time period. The tool can also display any records that exist in ConfigMgr associated with a device based on its SMBIOS GUID. The ‘log’ entries returned come from the status messages sent by the distribution point and not from the SMSPXE.log.

PXEBoot

The tool can help in troubleshooting PXE boot failures such as devices not being targeted with a deployment, duplicate records in the ConfigMgr database, or mismatched unique identifiers because of hardware changes.

Requirements

  • Minimum PowerShell 5
  • Minimum .Net Framework 4.5
  • Minimum read-only access to the Configuration Manager database (db_datareader role)

Installation

The tool can be downloaded and installed from GitHub.

Configuration

  • For first time use, click the “More Options” menu (3 dots, top-right) and choose Settings
  • Enter your Configuration Manager SQL Server and Database
  • Optionally select to view dates and times in your local timezone instead of the default UTC.
  • Click Save.

Using the Tool

  • Select a PXE-Enabled distribution point from the drop-down list.
  • Select a time period to view results
  • Click Retrieve Log
  • Double-click any log entry to retrieve the associated record/s for the device in ConfigMgr

Source Code

Source code is available on GitHub

35 thoughts on “New tool: ConfigMgr PXE Boot Log

  1. Is there an error log? I entered my DB server and DB name in the settings and I get no result under PXE service point. Not sure what I missed

    1. If it can’t connect to SQL or has an issue running the query it should return an error in a popup window. If there is no error, then try running the following SQL query using the same account and see if you get results:
      ‘Select ServerName from v_DistributionPoints where IsPxe = 1 Order By ServerName’

  2. Had the same issue as Kenneth – to resolve the issue in my case anyway was just to enter in the sql server name only as opposed to the sql server name\instance. If its the default mssqlserver instance then the just server name is suffice

  3. Same issue here.
    DBSERVER\INS01 does not provide any list of PXE service points.
    Running the query manually with the same user provides a list of all the PXE servers in SQLMgmtStudio, so permissions are good.

    No errormessages pops up in the tool, and the PXE Service Point list never populates.

    Also tried:
    FQDN-of-sql\INS01
    Run As Admin

    Any clue?

      1. No, not default instance. The instance is named, called INS01. I also tried without any \INS01, with no luck, specially since I have no default instances.

      2. I removed the picture, I had missed a line in the script. Here is the output:

        Exception calling “Open” with “0” argument(s): “A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 –
        Error Locating Server/Instance Specified)”
        Index was out of range. Must be non-negative and less than the size of the collection.
        Parameter name: index
        At line:260 char:1
        + $SQLQuery.Execute()
        + ~~~~~~~~~~~~~~~~~~~
        + CategoryInfo : OperationStopped: (:) [], ArgumentOutOfRangeException
        + FullyQualifiedErrorId : System.ArgumentOutOfRangeException

      3. Ok, so it seems you cannot communicate with the SQL server from that system. Check that the TCP/IP protocol is enabled in the SQL Server Configuration Manager for the instance, and that the port/s being used are open.

      4. The SQL server TCP port is running on port 1434 (not default 1433).
        Servername:1434\INS01 did not work, are custom TCP ports supported?

    1. Hmm the app should give an error pop up if it cannot connect to the SQL server. Have you tried the tool on a different system. Do you have .Net framework 4.5 installed? Which OS and PS version are you running?

  4. Seeing the same issue as other mentioned above. From 2 different systems I do not get a PXE point. Tested the SQL Query class from both systems and they both pull data, as well as pull the PXE server name with the following

    $SQLQuery = [SQLQuery]::new(“SERVERNAME”,”DATABASE”,”Select ServerName from v_DistributionPoints where IsPxe = 1 Order By ServerName”)
    $SQLQuery.Execute()

    But the program does not seem to pull this DP for me to be able to get data, nor does it pop up any error.

    Thanks

      1. Yes, using a default instance, so if I try to add anything else after just server name it complains. And also if I put a wrong server in, I get a popup error “Could not run SQL query!” Exception calling “Open” with 0 Arguments, A network related error occurred while establishing a connection to sql server.

      2. Ok that’s good. How many PXE-enabled DPs do you have? I discovered a bug where if you only have 1 PXE-enabled DP it will not display it in the drop-down combo.

      1. Hello

        Yes that version works, it brings up our Single PXE Enabled DP and the logs load.

        Thanks for the assistance.

  5. Hi Trevor, is this still available on the technet gallery? unable to locate it there.
    This looks like exactly what I’m after for diagnosing a PXE issue with some of our MECM DP’s
    Thanks

  6. After poking with this for a few minutes, thought I’d leave my findings here. Since MSI installer no longer available on Technet, you have to download the source from github.
    1. Download the entire source as ZIP from github
    2. Extract to C:\Program Files (x86)\SMSAgent\ConfigMgr PXE Boot Log, such that ConfigMgrPXEBootlog.ps1 is in the folder and bin,Versions, and XAML Files folder are under it.
    3. Run ConfigMgrPXEBootlog.ps1 via Powershell
    4. Configure Database server and name
    5. Look for Trevor’s other extremely helpful too, ConfigMgr Task Sequence Monitor and install it 🙂

Leave a Reply to Trevor Jones Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.