Device Guard - Fixing VMWare Tools

This documents my experience implementing Windows Device Guard in a VMWare Workstation home lab environment, building on Matt Graeber’s comprehensive guides. While Device Guard doesn’t enable all features in VMWare, it provides valuable hands-on learning.

The Problem

After following Graeber’s deployment steps, VMWare Tools malfunctioned. The culprit was an unsigned DLL file: sigc-2.0.dll, which conflicted with the strict code integrity policies.

The Solution

I created a separate policy specifically for VMWare Tools and merged it with the master policy.

Step 1: Generate VMWare-specific policy

$VMWareFiles = Get-SystemDriver -ScanPath 'C:\Program Files\VMware\VMware Tools' -UserPEs
New-CIPolicy -FilePath C:\DGPolicyFiles\VMWare.xml -DriverFiles $VMWareFiles -Level Publisher -Fallback Hash -UserPEs

This scans VMWare Tools directory and creates hashes for unsigned executables and DLLs as a fallback verification method.

Step 2: Merge policies

$CIPolicyPath = "C:\DGPolicyFiles\"
$MasterPolicy = $CIPolicyPath+"MergedAuditPolicy.xml"
$NewPolicy = $CIPolicyPath+"VMWare.xml"
Merge-CIPolicy -PolicyPaths $MasterPolicy,$NewPolicy -OutputFilePath $CIPolicyPath\MasterMergedVMWareRules.xml

Step 3: Apply and reboot

After converting the merged policy and rebooting, VMWare Tools functions normally.

Key Considerations

  • Review whitelisted components before deployment
  • Hash-based policies prioritize functionality over strict security
  • Publisher-level validation alone proved insufficient for VMWare compatibility