Back to Bring in the fleet

COURSE 1.6 · CONFIGURATION CHECKLIST

Bring in the fleet

Secure By Design · Edition 1.5 · 14 October 2026

Fifty endpoints join a network that is finally ready for them: addressed by DHCP, landed by OU redirect, hardened by policy at first boot, certified by autoenrollment, and watched by the pipeline from their first sign-in. Tier 0 steps run from AdminJumpBox01, Tier 1 steps on SBD-DHCP01 from SBD-ADMIN-SRV01, and Tier 2 steps inside SBD-ADMIN-PC01; each seat keeps its part of the record under C:\Evidence\workstation-fleet. The sample names run SBD-PC01 through SBD-PC50; match them to your own plan.

Download the workbook (Word)

Before you start

1. Prepare the fleet rollout

About 30 min · Open this lesson

Commands:

Get-FileHash -Algorithm SHA256 C:\Staging\Windows-client-reference.vhdx
# On AdminJumpBox01 (Tier 0): the join account's delegation (svc-fleet-join in this sample) and the OU's links
(Get-Acl 'AD:\OU=Workstations,OU=SBD,DC=sbd,DC=test').Access | Where-Object IdentityReference -match 'svc-fleet-join|SBD Tier 2 Admins' | Select-Object IdentityReference, ActiveDirectoryRights, ObjectType
(Get-GPInheritance -Target 'OU=Workstations,OU=SBD,DC=sbd,DC=test').GpoLinks | Select-Object Order, DisplayName   # course 1.1's tier logon GPO stays at order 1
Get-GPOReport -Name 'SBD Workstation Firewall' -ReportType Html -Path C:\Evidence\workstation-fleet\workstation-firewall.html
Get-GPOReport -Name 'SBD Workstation DNS' -ReportType Html -Path C:\Evidence\workstation-fleet\workstation-dns.html

Verify: The image is hashed and recorded, the join account holds only Create Computer objects on the Workstations OU, and the client STIG, loopback, local Administrators, firewall and DNS registration GPO links show on that OU below course 1.1's tier logon GPO, still at link order 1, before any machine exists in it.

Evidence: Keep the image record with its hash, the naming and wave plan, the delegation output for the join account and SBD Tier 2 Admins, the OU's GPO links in order, and the firewall and DNS registration GPO reports with the recorded reason.

Notes / result / date:

2. Join the pilot and inspect first boot

About 30 min · Open this lesson

Commands:

Get-ADComputer -SearchBase 'OU=Workstations,OU=SBD,DC=sbd,DC=test' -Filter * | Select-Object Name, DNSHostName
gpresult /r /scope:computer
w32tm /query /source   # a domain controller, never Local CMOS Clock or the hypervisor
Resolve-DnsName SBD-PC01.sbd.test -Server SBD-DC02.sbd.test
Get-ItemProperty 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient' | Select-Object RegistrationEnabled   # 0: the PC leaves registration to SBD-DHCP01
Test-NetConnection SBD-PC02.sbd.test -Port 445   # expected: TcpTestSucceeded False

Verify: All three pilots sit in the Workstations OU with STIG policy applied, time from a domain controller and DNS registered by SBD-DHCP01 on both DCs with the PC's own registration off, peer SMB/RDP fails as designed, and the join events are visible in analysis.

Evidence: Keep each pilot's placement, gpresult, time source and DNS proof; the peer-deny output; and the analysis search showing the three computer-account creations.

Notes / result / date:

3. Manage local administrators with Windows LAPS

About 25 min · Open this lesson

Commands:

# On AdminJumpBox01 (Tier 0): who holds the LAPS rights on the Workstations OU
Find-LapsADExtendedRights -Identity 'OU=Workstations,OU=SBD,DC=sbd,DC=test'
# Inside SBD-ADMIN-PC01 (Tier 2)
# The LAPS cmdlets read the directory over LDAP; the AD module's web service (TCP 9389) is open only to AdminJumpBox01
Get-LapsADPassword -Identity SBD-PC01 -AsPlainText | Select-Object ComputerName, Account, ExpirationTimestamp
# On the pilot
gpresult /r /scope:computer

Verify: The LAPS tab appears on each pilot in Active Directory Users and Computers, showing the managed account, password and expiration only to SBD Tier 2 Admins (beside the default Domain Admins); Group Policy Results shows the LAPS policy applied on the pilots; and one retrieve-use-rotate cycle is recorded.

Evidence: Keep the schema-change record, the permission delegation, the LAPS policy report, and the observed rotation cycle.

Notes / result / date:

4. Autoenroll the fleet's certificates

About 25 min · Open this lesson

Commands:

# On SBD-PC01, after the restart
gpupdate /force
certutil -pulse
Get-ChildItem Cert:\LocalMachine\My | Select-Object Subject, NotAfter, Thumbprint
Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.EnhancedKeyUsageList.FriendlyName -contains 'Client Authentication' } | Select-Object -First 1 | Export-Certificate -FilePath C:\Evidence\workstation-fleet\SBD-PC01.cer
certutil -urlcache * delete
certutil -verify -urlfetch C:\Evidence\workstation-fleet\SBD-PC01.cer   # carry the output to SBD-ADMIN-PC01's record

Verify: The pilots enroll hands-free once Active Directory Users and Computers shows them in SBD Fleet Computers; Certificates (Local Computer) on each shows its SBD Computer Authentication certificate with a Certification Path that reads OK, with live publication retrieval and nothing cached; and the CA's Issued Certificates lists them.

Evidence: Keep the template change record, the SBD Fleet Computers membership, an endpoint's certificate details, the urlfetch output, and a sample of the CA's issued log.

Notes / result / date:

5. Admit only enrolled devices with 802.1X

About 30 min · Open this lesson

Commands:

# On an enrolled pilot: the wired interface authenticated with EAP-TLS.
netsh lan show interfaces
# On SBD-DHCP01 (Tier 1): NPS auditing is on, then recent grants (6272) and denials (6273).
auditpol /get /subcategory:"Network Policy Server"
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=6272,6273} -MaxEvents 5 | Select-Object TimeCreated, Id

Verify: The network policy admits Domain Computers with EAP-TLS; NPS auditing records success and failure; every pilot authenticates with EAP-TLS and NPS logs the grant (6272); a failed authentication is logged but, in monitor mode, the port still forwards on VLAN 80; the ports name VLAN 90 as their failure VLAN; and the NPS events appear in the collector.

Evidence: Keep the network policy export, the RADIUS client list (without the secret), the audit GPO report, the monitor-mode port configuration, the pilots' grant events and the failed test, and the F20 register row.

Notes / result / date:

6. Scale to fifty, enforce 802.1X, and prove by sample

About 30 min · Open this lesson

Commands:

# On AdminJumpBox01 (Tier 0): the fleet's computer objects and its group
(Get-ADComputer -SearchBase 'OU=Workstations,OU=SBD,DC=sbd,DC=test' -Filter *).Count   # 50, once SBD-TEST80 is retired
(Get-ADGroupMember 'SBD Fleet Computers').Count   # 50
# On SBD-DHCP01: authentication results in the last hour (6272 granted, 6273 denied).
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=6272,6273; StartTime=(Get-Date).AddHours(-1)} | Group-Object Id | Select-Object Name, Count
Get-DhcpServerv4ScopeStatistics -ScopeId 10.0.80.0 | Select-Object PercentageInUse, AddressesInUse
# On SBD-SYSLOG01: the fleet's events arriving
Get-WinEvent -LogName ForwardedEvents -MaxEvents 5 | Select-Object MachineName, Id

Verify: Fifty computer objects sit in the Workstations OU and in SBD Fleet Computers, SBD-TEST80 is retired, every PC enrolled and authenticates, the ports enforce 802.1X with the unenrolled laptop quarantined in VLAN 90, scope utilization matches the rollout, every sampled host passes the full check set, and fleet events flow through the pipeline.

Evidence: Keep the wave log, the enrollment reconciliation, the SBD-TEST80 retirement record, the enforcement change with both admission results and their records, the sample definition with its failure rule, the per-sample check results, and the enrolment proof from the collector.

Notes / result / date:

7. Delta scan the fleet and hand off

About 30 min · Open this lesson

Commands:

# Inside SBD-ADMIN-PC01 (Tier 2): the installer course 1.1, part 8 kept still matches the record (expected: True)
$scc = Get-Item 'C:\Staging\DISA\<SCC installer>'
(Get-FileHash $scc.FullName -Algorithm SHA256).Hash -in (Import-Csv C:\Staging\DISA\connected-side-hashes.csv).Hash
# Per sampled PC: carry the installer over remote management (A03), install and scan there, bring the results back
$s = New-PSSession SBD-PC07.sbd.test
Copy-Item $scc.FullName -ToSession $s -Destination C:\Windows\Temp\
Copy-Item '<SCC results folder on the PC>' -FromSession $s -Destination C:\Evidence\workstation-fleet\baseline\SBD-PC07 -Recurse
# After the scans: this seat's record, hashed
Get-ChildItem C:\Evidence\workstation-fleet -Recurse -File | Get-FileHash -Algorithm SHA256 | Export-Csv C:\Evidence\workstation-fleet-manifest.csv -NoTypeInformation

Verify: The installer course 1.1, part 8 kept on SBD-ADMIN-PC01 still matches its recorded hash, the sampled endpoints hold dated Windows client baselines with SCC removed afterwards, the infrastructure rescans carry attributed deltas, and the fleet inventory is complete and filed.

Evidence: Finish the checklist: the installer's hash check, the endpoint baselines, infrastructure rescans, the fleet inventory, the hashed manifest, and the handoff note to courses 1.7 and 1.8.

Notes / result / date:

Sources