→ 🚀What's New? Explore Lansweeper's Fall 2024 Updates! Fall Launch Blog !
‎06-24-2021 10:18 PM
‎09-11-2023 12:50 PM - edited ‎09-11-2023 01:01 PM
In the Windows11ReadinessAudit I got a suspiciously large number of 'fails' on missing (or not-recorded) TPMs.
In order to find more detail and try to establish what was the case I created my own TPM-report:
SELECT
dbo.tblAssets.AssetID,
dbo.tblAssets.AssetName,
dbo.tblAssetCustom.Model,
dbo.tblAssets.Domain,
dbo.tblAssets.Firstseen,
dbo.tblAssets.Lastseen,
dbo.tblAssets.Username,
dbo.tblAssets.IPAddress,
CASE WHEN dbo.tblTPM.SpecVersion IS NULL THEN 'No TPM recorded' ELSE dbo.tblTPM.SpecVersion END AS TPM,
dbo.tblTPM.IsActivated_InitialValue AS [TPM IsActivated],
dbo.tblTPM.IsEnabled_InitialValue AS [TPM IsEnabled],
dbo.tblTPM.IsOwned_InitialValue,
dbo.tblOnBoardDevice.Description AS [OnBoardDevice found],
dbo.tblOnBoardDevice.Enabled AS [OnBoardDevice Enabled],
dbo.tblOnBoardDevice.Tag AS [OnBoardDevice Tag],
dbo.tblAssets.LastActiveScan,
dbo.tblAssets.OScode,
dbo.tblAssets.SP
FROM dbo.tblAssets LEFT OUTER JOIN
dbo.tblAssetCustom ON dbo.tblAssets.AssetID = dbo.tblAssetCustom.AssetID LEFT OUTER JOIN
dbo.tblOnBoardDevice ON dbo.tblAssets.AssetID = dbo.tblOnBoardDevice.AssetID LEFT OUTER JOIN
dbo.tblTPM ON dbo.tblAssets.AssetID = dbo.tblTPM.AssetId
WHERE (dbo.tblOnBoardDevice.Description LIKE N'%TPM%')
This report gave me the view that there are hundreds of PCs that have no info in table tblTPM but in table tblOnBoardDevice it says that there is a TPM in that PC and it is active too... Here is a screenshot of the report:
For privacy reasons I removed usernames, assetnames, domain and IP info.
These PCs are mentioned in the Windows11ReadinessAudit as "not Win11 compatible", while some of them are only weeks old and absolutely capable of running Windows11.
Thinking on this discrepancy I came to the thought that probably the contents of tblTPM is based on registry-info and tblOnBoardDevice is queried out of the BIOS via WMI.
Spotchecks on the PC details learned me that there were no scan-errors, which should have been there if scanning was somehow corrupted.
We install our PC all in the same automated way using a combi of a scripted bare-metal installer, SCCM and PDQ so the endresult is always the same.
Do you have any ideas why this discrepancy exists?
‎07-08-2021 08:51 PM
‎07-07-2021 05:59 PM
or tblVideoController.AdapterCompatibility Like 'ATI%'
or tblVideoController.AdapterCompatibility Like 'Advanced Micro Devices%'
or tblVideoController.AdapterCompatibility Like 'Matrox%'
or tblVideoController.AdapterCompatibility Like 'Barco%'
‎07-07-2021 04:20 PM
Left Join (Select tblVideoController.AssetID,
tblvideocontroller.caption,
Convert(VarChar,tblVideoController.CurrentHorizontalResolution) + 'x' +
Convert(VarChar,tblVideoController.CurrentVerticalResolution) + ', ' +
Convert(VarChar,tblVideoController.CurrentBitsPerPixel) + 'bpp' As
[GPU Output],
Case tblVideoController.Availability
When 1 Then 'Other'
When 2 Then 'Unknown'
When 3 Then 'Running'
When 4 Then 'Warning'
When 5 Then 'In Test'
When 6 Then 'Not applicable'
When 7 Then 'Power off'
When 8 Then 'Offline'
When 9 Then 'Off duty'
When 10 Then 'Degraded'
When 11 Then 'Not installed'
When 12 Then 'Install error'
When 13 Then 'Power save: Unknown'
When 14 Then 'Power save: Low power'
When 15 Then 'Power save: Standby'
When 16 Then 'Power cycle'
When 17 Then 'Power save: Warning'
Else 'Undefined: ' + Convert(VarChar,tblVideoController.Availability)
End As [Video Card State],
Case
When tblVideoController.CurrentBitsPerPixel >= 8 And
tblVideoController.CurrentHorizontalResolution >= 1280 And
tblVideoController.CurrentVerticalResolution >= 720 Then 'Pass'
Else 'Fail'
End As Screen
From tblVideoController
where tblVideoController.AdapterCompatibility Like '%intel%' or tblVideoController.AdapterCompatibility Like '%amd%' or tblVideoController.AdapterCompatibility Like '%nvidia%') As Screen On Screen.AssetID = tblAssets.AssetID
‎07-07-2021 04:10 PM
‎07-07-2021 02:58 PM
RC62N wrote:
A couple of suggestions:I don't have any VirtualBox VMs at the moment, so I'm not sure how their video cards appear, but they might get a free pass, too.
- where VMWare display adapters get a free pass, give Hyper-V the same
- filter out virtual display adapters
...
Inner Join tblVideoController On tblVideoController.AssetID = tblAssets.AssetID
AND tblVideoController.AdapterCompatibility NOT LIKE '%Citrix%'
AND tblVideoController.AdapterCompatibility NOT LIKE '%DameWare%'
...
Left Join (Select tblVideoController.AssetID,
Case
When tblVideoController.AdapterCompatibility Like '%vmware%'
Or tblVideoController.Caption Like '%Vmware%'
Or tblVideoController.Caption Like '%Hyper-V%' Then 'Pass'
When tblVideoController.CurrentBitsPerPixel >= 8 And
tblVideoController.CurrentHorizontalResolution >= 1280 And
tblVideoController.CurrentVerticalResolution >= 720 Then 'Pass'
Else 'Fail'
End As Screen
From tblVideoController
WHERE tblVideoController.AdapterCompatibility NOT LIKE '%Citrix%'
AND tblVideoController.AdapterCompatibility NOT LIKE '%DameWare%') As Screen On Screen.AssetID = tblAssets.AssetID
...
There may be others. I only list Citrix and DameWare because I show them in my inventory and including them produces extra, incorrect results.
‎07-06-2021 07:46 PM
CASE tblVideoController.Availability
WHEN 1 THEN 'Other'
WHEN 2 THEN 'Unknown'
WHEN 3 THEN 'Running'
WHEN 4 THEN 'Warning'
WHEN 5 THEN 'In Test'
WHEN 6 THEN 'Not applicable'
WHEN 7 THEN 'Power off'
WHEN 8 THEN 'Offline'
WHEN 9 THEN 'Off duty'
WHEN 10 THEN 'Degraded'
WHEN 11 THEN 'Not installed'
WHEN 12 THEN 'Install error'
WHEN 13 THEN 'Power save: Unknown'
WHEN 14 THEN 'Power save: Low power'
WHEN 15 THEN 'Power save: Standby'
WHEN 16 THEN 'Power cycle'
WHEN 17 THEN 'Power save: Warning'
ELSE 'Undefined: ' + Convert(VarChar, tblVideoController.Availability)
END AS [Video Card State],
Case
When tblVideoController.AdapterCompatibility Like '%vmware%'
Or tblVideoController.Caption Like '%Vmware%'
Or tblVideoController.Caption Like '%Hyper-V%' Then 'Pass'
When tblVideoController.CurrentBitsPerPixel >= 8
And tblVideoController.CurrentHorizontalResolution >= 1280
And tblVideoController.CurrentVerticalResolution >= 720 Then 'Pass'
Else 'Fail'
END AS [GPU Output > 720p, 8bit],
Convert(VarChar, tblVideoController.CurrentHorizontalResolution) + 'x'so I can see why GPUs that evaluate as failed do so when the video card is active.
+ Convert(VarChar, tblVideoController.CurrentVerticalResolution) + ', '
+ Convert(VarChar, tblVideoController.CurrentBitsPerPixel) + 'bpp' AS [GPU Output],
‎07-06-2021 04:15 PM
...
Inner Join tblVideoController On tblVideoController.AssetID = tblAssets.AssetID
AND tblVideoController.AdapterCompatibility NOT LIKE '%Citrix%'
AND tblVideoController.AdapterCompatibility NOT LIKE '%DameWare%'
...
Left Join (Select tblVideoController.AssetID,
Case
When tblVideoController.AdapterCompatibility Like '%vmware%'
Or tblVideoController.Caption Like '%Vmware%'
Or tblVideoController.Caption Like '%Hyper-V%' Then 'Pass'
When tblVideoController.CurrentBitsPerPixel >= 8 And
tblVideoController.CurrentHorizontalResolution >= 1280 And
tblVideoController.CurrentVerticalResolution >= 720 Then 'Pass'
Else 'Fail'
End As Screen
From tblVideoController
WHERE tblVideoController.AdapterCompatibility NOT LIKE '%Citrix%'
AND tblVideoController.AdapterCompatibility NOT LIKE '%DameWare%') As Screen On Screen.AssetID = tblAssets.AssetID
...
‎07-06-2021 03:22 PM
Experience Lansweeper with your own data. Sign up now for a 14-day free trial.
Try Now