Speed Reference
windowsServer Windows Server Speed Reference
Condensed, no-explanation command sheet for when the clock is running.
Recall/scan sheet only — read the Master Checklist or Beginner Guide first.
dsa.msc= AD Users & Computers,gpmc.msc= Group Policy Management,dnsmgmt.msc= DNS,dhcpmgmt.msc= DHCP,inetmgr= IIS.
0. Before Anything#
- Snapshot. Read README.
Get-WindowsFeature | ? Installed— identify every role BEFORE touching services. Answer forensics questions first.
1. Roles & Features#
powershell
Get-WindowsFeature | Where-Object Installed
- Remove roles not required by README (
Remove-WindowsFeature) — but never guess; check the README twice before removing a role.
2. Local Admins & Golden Rule#
-
Get-LocalGroupMember Administrators— local admins, separate from Domain Admins. - On a Domain Controller,
secpol.mscis mostly inert. Usegpmc.msc → Default Domain Policy(andDefault Domain Controllers Policy) instead.
3. AD Users & Groups (dsa.msc)#
dsa.msc)#powershell
Get-ADUser -Filter * -Properties * | Select Name,Enabled,PasswordNeverExpires
Get-ADGroupMember -Identity "Domain Admins" -Recursive | Select Name,SamAccountName # -Recursive catches nested-group sneak-ins!
Get-ADGroupMember -Identity "Enterprise Admins" -Recursive
Get-ADUser -Filter {PasswordNeverExpires -eq $true}
Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true} # AS-REP roasting targets
- Audit: Administrators, Domain Admins, Enterprise Admins, Schema Admins, Account Operators, Backup Operators, Server Operators. Disable unauthorized accounts, don't delete. Don't touch
krbtgtbeyond checking group membership.
4. Domain Password/Lockout Policy (gpmc.msc → Default Domain Policy)#
gpmc.msc → Default Domain Policy)#| Setting | Value |
|---|---|
| Min password length | 14 |
| Complexity | Enabled |
| Password history | 24 |
| Lockout threshold | 5 |
| Lockout duration | 30 min |
powershell
Set-ADDefaultDomainPasswordPolicy -MinPasswordLength 14 -ComplexityEnabled $true -PasswordHistoryCount 24 -LockoutThreshold 5 -LockoutDuration (New-TimeSpan -Minutes 30)
5. Kerberos / LDAP#
powershell
Set-ItemProperty "HKLM:\...\Kerberos\Parameters" -Name SupportedEncryptionTypes -Value 24 -Type DWord # AES only
- LDAP server signing:
secpol.msc/gpmc.msc → Security Options → Domain controller: LDAP server signing requirements → Require signing
6. DNS (dnsmgmt.msc)#
dnsmgmt.msc)#- Zone Transfers: restrict to named servers only, never "to any server." Dynamic updates: Secure only. Root hints intact (a-m.root-servers.net). Forwarders empty unless required.
7. DHCP (dhcpmgmt.msc)#
dhcpmgmt.msc)#- Authorized servers only (
Get-DhcpServerInDC). Scope gateway/DNS options correct — a single wrong octet is a common miss.
8. Firewall / Services / Updates — same as Windows Client speed sheet, applies here too.#
9. Backdoor / Sabotage Checks (same techniques, server is a higher-value target)#
powershell
Get-ItemProperty "HKCU:\Software\Policies\Microsoft\Windows\System" -Name DisableCMD -EA SilentlyContinue
Get-ItemProperty "HKCU:\...\Policies\System" -Name DisableTaskMgr -EA SilentlyContinue
Get-MpPreference | Select ExclusionPath,ExclusionExtension,ExclusionProcess
schtasks /query /v /fo list
Get-CimInstance Win32_Service | Select Name,DisplayName,PathName,StartName
gpresult /z > C:\gpresult_after.txt
- Print Spooler disabled on DCs (PrintNightmare) unless required.
10. IIS (if Web role present)#
- Browse the site in host browser first. Check
C:\inetpub\wwwrootfor anything beyond default files + remove sample/example content. Anonymous Auth disabled unless required. TRACE/TRACK verbs denied. Legacy TLS/SSL disabled.
11. Final Pass#
- Snapshot again. Confirm required roles/services still running.
gpresult /zclean. Re-answer forensics questions.