DS7.1 Computers are being treated as unknown computers by PXE servers
Last Updated October 03, 2013
When the 'Respond to unknown computers' box is checked, then known computers outside the subnet of the PXE server are treated as unknown computers)
When the SBS (PXE) services are started on the server, a stored procedure (query) is run against the database to determine 'known' computers to that server. Presently, the query limits the computers the returned computers to those sharing the same subnet as the server to which results are returned.
To verify that this is the case, find the "XXXXXXXXX-client.sbs" file in the "\\Deployment\Task Handler\SBS\SBSStore" on the PXE server. Opening it up will show a list of computers' MAC addresses and UUIDs for known computers.
CAUTION: These queries are designed to modify the default behavior of the product, specifically by changing the Stored Proceedure "spGetPXEClientInfo". This should be backed up prior to execution.
_______________________________________________________________________ Increase Returns to include all by Site(as defined by subnets):
This query returns computers in the database that are assigned to the same site as the task server. It looks at the task server / PXE server, determines which site it's in, and then returns all clients in that site, where a site is determined by the site/subnet definitions in Manage Sites and Services. That means that multiple task server client-lists will show up on a single PXE server's list, if they're in the same logical / configured site.
NOTE: This specific query is new and has not been widely vetted for use where the other queries have been widely tested and used.
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[spGetPXEClientInfo] @TSResourceGuid uniqueidentifier AS
with TaskServerSiteSubnets as ( select vs.Guid, vs.Subnet, vs.[Subnet Mask] from vSiteSubnetMap sm join vSubnet vs on sm.SubnetGuid = vs.Guid where exists ( select sm._ResourceGuid from vSubnet sn join vSiteSubnetMap sm on sn.Guid = sm.SubnetGuid where ( dbo.fnIsIPInSubnet((select [IP Address] from vComputer where Guid = @TSResourceGuid), sn.Subnet, sn.[Subnet Mask]) ) = 1 and sm.SubnetGuid = sm.SubnetGuid ) )
select vc.Guid, vc.Name, vc.[IP Address], vc.[MAC Address], id.[Hardware Serial Number], id.[Unique ID] from Inv_Client_Task_Resources tr join vComputer vc on tr._ResourceGuid = vc.Guid join Inv_AeX_AC_Identification id on vc.Guid = id._ResourceGuid join Inv_Client_Task_Servers cts on tr.ClientTaskServerGuid = cts._ResourceGuid join vComputer vc2 on cts._ResourceGuid = vc2.Guid join TaskServerSiteSubnets sn on dbo.fnIsIPInSubnet(vc2.[IP Address], sn.Subnet, sn.[Subnet Mask]) = 1
_______________________________________________________________________ Increase Returns to include all on Task Server: This query returns computers in the database that are assigned to this specific PXE server as their Task Server. If the client's task server is not a PXE server, those clients will not be sent to any PXE server and will always be understood as unknown. Remember that in our documentation we expect all Task Servers to also have the DS Task Handlers / PXE installed in DS 7.1.
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[spGetPXEClientInfo] @TSResourceGuid uniqueidentifier AS SELECT Distinct acid.[Unique ID] as uuid, tcpip.[MAC Address] as mac, acid.[Hardware Serial Number] as serial FROM Inv_Client_Task_Resources ictr INNER JOIN Inv_Client_Task_Servers icts ON ictr.[ClientTaskServerGuid] = icts.[ClientTaskServerGuid] AND icts.[_ResourceGuid] = @TSResourceGuid LEFT OUTER JOIN Inv_AeX_AC_Identification acid ON acid.[_ResourceGuid] = ictr.[_ResourceGuid] LEFT OUTER JOIN Inv_AeX_AC_TCPIP tcpip ON ictr.[_ResourceGuid] = tcpip.[_ResourceGuid] Where acid.[Unique ID] IS NOT Null and tcpip.[MAC Address] IS NOT Null and acid.[Hardware Serial Number] IS NOT Null
Increase Returns to include all from the Full Environment: This query will return every computer in the database to the PXE server as a known computer
WARNING: This will most likely generate a larger file/list and is not advised for very large (e.g. 12,000 - 20,000 clients per a single SMP) environments. The risk is slowing down the PXE Server Service response to clients as it tries to scan through the list.
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[spGetPXEClientInfo] @TSResourceGuid uniqueidentifier AS select tcpip.[MAC Address] as mac, acid.[Unique ID] as uuid, acid.[Hardware Serial Number] as serial from Inv_AeX_AC_TCPIP tcpip INNER JOIN Inv_AeX_AC_Identification acid on tcpip.[_ResourceGuid] = acid.[_ResourceGuid]
_______________________________________________________________________ Return to Default: Remember that prior to modifying the SP, we really should have created a backup, but if not, this will return the query to default:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[spGetPXEClientInfo] @TSResourceGuid uniqueidentifier AS select Inv_AeX_AC_TCPIP.[MAC Address] as mac, Inv_AeX_AC_Identification.[Unique ID] as uuid, Inv_AeX_AC_Identification.[Hardware Serial Number] as serial from Inv_AeX_AC_TCPIP INNER JOIN Inv_AeX_AC_Identification on Inv_AeX_AC_TCPIP.[_ResourceGuid] = Inv_AeX_AC_Identification.[_ResourceGuid] where Inv_AeX_AC_TCPIP.[Subnet] = (select TOP 1 Subnet from Inv_AeX_AC_TCPIP where _ResourceGuid = (select _ResourceGuid from Inv_Client_Task_Servers Where ClientTaskServerGuid = @TSResourceGuid))
Deployment Solution 7.1
Single PXE server servicing multiple subnets
Imported Document ID: TECH133468
Subscribing will provide email updates when this Article is updated. Login is required to Subscribe