Introduction
Zero Trust Architecture on Windows Server 2016 applies the principle of “never trust, always verify” to every connection and access request. Using native Windows capabilities — Credential Guard, Windows Firewall, JIT access, and audit logging — administrators can implement strong Zero Trust controls without additional tooling.
Enabling Credential Guard
Protect NTLM hashes and Kerberos tickets from extraction using Credential Guard:
Set-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetControlDeviceGuard' `
-Name EnableVirtualizationBasedSecurity -Value 1
Set-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetControlLsa' `
-Name LsaCfgFlags -Value 1
# Verify after reboot
(Get-CimInstance -ClassName Win32_DeviceGuard -Namespace rootMicrosoftWindowsDeviceGuard).SecurityServicesRunning
Network Micro-Segmentation
Block all inbound traffic by default and only allow specific authorised connections:
Set-NetFirewallProfile -Profile Domain,Private,Public -DefaultInboundAction Block
New-NetFirewallRule -DisplayName 'Allow RDP from PAW only' `
-Direction Inbound -Protocol TCP -LocalPort 3389 `
-RemoteAddress '10.0.0.50/32' -Action Allow
New-NetFirewallRule -DisplayName 'Allow WinRM from Management' `
-Direction Inbound -Protocol TCP -LocalPort 5985,5986 `
-RemoteAddress '10.0.0.0/24' -Action Allow
Just-In-Time Access with AD PAM
Grant privileged access for a limited time rather than permanently:
Enable-ADOptionalFeature 'Privileged Access Management Feature' `
-Scope ForestOrConfigurationSet -Target 'contoso.com'
Add-ADGroupMember -Identity 'Server Operators' -Members 't1-jsmith' `
-MemberTimeToLive (New-TimeSpan -Hours 1)
Write-Host "JIT access granted for 1 hour"
Device Health Verification
Verify the security posture of devices before granting access:
Get-Tpm | Select-Object TpmPresent,TpmReady,TpmEnabled
Confirm-SecureBootUEFI
Get-BitLockerVolume | Select-Object MountPoint,ProtectionStatus,EncryptionPercentage
Continuous Audit Logging
Enable comprehensive security event logging as a detective Zero Trust control:
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Sensitive Privilege Use" /success:enable /failure:enable
auditpol /set /subcategory:"Account Logon" /success:enable /failure:enable
# Monitor for anomalies
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 50 |
Select-Object TimeCreated,@{N='User';E={$_.Properties[5].Value}},@{N='IP';E={$_.Properties[19].Value}}
Summary
Zero Trust on Windows Server 2016 uses Credential Guard, host-based micro-segmentation, just-in-time access, and comprehensive audit logging to verify every access request. These native Windows controls build a layered defence that limits attack surface and prevents lateral movement without requiring expensive third-party solutions.