Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
7c4fd5e
AD Connection; Phase 1 Computers
Snozz-Al Apr 25, 2026
769a60c
Phase 2
Snozz-Al Apr 25, 2026
8b5431b
Complete Phase 3: Password Policies - 11 AD tests implemented
Snozz-Al Apr 25, 2026
045ec22
Update ADTestBacklog with commit/push guidelines for future phases
Snozz-Al Apr 25, 2026
176f859
Complete Phase 4: DNS Infrastructure - 19 tests implemented
Snozz-Al Apr 25, 2026
a141239
Update documentation to emphasize commit/push requirements
Snozz-Al Apr 25, 2026
2096533
Revert Phase 4 status to pending validation
Snozz-Al Apr 25, 2026
7183bbb
Add Phase 3 validation results against live DC
Snozz-Al Apr 25, 2026
ae93726
Complete Phase 4 validation against live domain controller
Snozz-Al Apr 25, 2026
ee15b47
Complete Phase 5: Domain and Forest Information - 12 tests implemente…
Snozz-Al Apr 25, 2026
f6018ee
Complete Phase 6: Domain Controllers - 8 tests implemented and validated
Snozz-Al Apr 25, 2026
6ddc0ec
Complete Phase 7: Group Policy - 11 tests implemented
Snozz-Al Apr 25, 2026
a36cd69
Update Phase 7 status: Validation pending due to SSH/PowerShell execu…
Snozz-Al Apr 25, 2026
24533c7
Complete Phase 7 validation against live DC
Snozz-Al Apr 25, 2026
c4551c4
P7 Validation
Snozz-Al Apr 25, 2026
3389fae
Complete Phase 8: Groups - 22 tests implemented and validated
Snozz-Al Apr 25, 2026
9249465
Complete Phase 9: User Tests - 29 tests implemented and validated
Snozz-Al Apr 25, 2026
4ad0ca5
Complete Phase 10: Organizational Units - 5 tests implemented and val…
Snozz-Al Apr 25, 2026
7da8f40
Complete Phase 11: Sites and Subnets - 16 tests implemented and valid…
Snozz-Al Apr 25, 2026
1d38119
Complete Phase 12: Trusts - 7 tests implemented and validated
Snozz-Al Apr 25, 2026
9778275
Complete Phase 13: Schema and Infrastructure - 6 tests implemented an…
Snozz-Al Apr 25, 2026
fc0fb9c
Complete Phase 14: Domain State - Configuration - 24 tests implemente…
Snozz-Al Apr 25, 2026
416a0da
Complete Phase 15: Domain State - Domain Controllers - 4 tests implem…
Snozz-Al Apr 25, 2026
9563d62
Complete Phase 16: Domain State - Forest and Domain - 5 tests impleme…
Snozz-Al Apr 25, 2026
3dde91a
Complete Phase 17: Domain State - Security Accounts - 13 tests implem…
Snozz-Al Apr 25, 2026
2586f8d
Update backlog: Mark Phase 17 as complete in summary statistics
Snozz-Al Apr 25, 2026
608954b
Complete Phase 18: Domain State - Replication and Features - 8 tests …
Snozz-Al Apr 25, 2026
483cbfb
Complete Phase 19: GPO State - 27 tests implemented
Snozz-Al Apr 25, 2026
8b9e9e0
Fix regex patterns in GPO State detail functions
Snozz-Al Apr 25, 2026
ed0acb4
Adds for P19
Snozz-Al Apr 25, 2026
63f7f87
Add simple validation scripts and README for Phase 19
Snozz-Al Apr 25, 2026
2349ee3
Complete Phase 20: DACL Analysis - 18 tests implemented and validated
Snozz-Al Apr 25, 2026
e2d7283
P19 Final
Snozz-Al Apr 25, 2026
b0c50bc
Draft blog for release
Snozz-Al Apr 25, 2026
d0433a1
Full tests
Snozz-Al Apr 25, 2026
8654098
Example reports
Snozz-Al Apr 25, 2026
61ce358
Fixes
Snozz-Al Apr 26, 2026
07b674a
Fix headers
Snozz-Al Apr 26, 2026
59934b3
Clean up MD docs
Snozz-Al Apr 26, 2026
1d785b0
Improvements
Snozz-Al Apr 26, 2026
e8f23b6
Merge upstream/main into majorFeat-ActiveDirectory - resolve psd1 con…
Snozz-Al Apr 26, 2026
499e850
Merge upstream/main into majorFeat-ActiveDirectory
Snozz-Al Apr 26, 2026
f207c51
Remove clear text password from AD test results documentation
Snozz-Al Apr 26, 2026
6aafcbf
Fix unit tests - add missing AD functions to module manifest
Snozz-Al Apr 26, 2026
b26b874
Fix PSScriptAnalyzer issues across AD test functions
Snozz-Al Apr 26, 2026
9be8109
Fix PSScriptAnalyzer PSUseSingularNouns rule handling
Snozz-Al Apr 26, 2026
9f68ac0
Fixing plurals
Apr 26, 2026
679e83c
A few more plurals
Apr 26, 2026
6a3909d
Add Verbose
Snozz-Al Apr 26, 2026
51cec7e
Merge branch 'origin/majorFeat-ActiveDirectory' into majorFeat-Active…
Snozz-Al Apr 26, 2026
6245d02
Dir cleanup
Snozz-Al Apr 26, 2026
0018a8c
Update powershell/public/ad/dns/Test-MtAdDnsZoneCount.ps1
soulemike May 2, 2026
76fb7c2
Update powershell/public/ad/domain/Test-MtAdDomainControllerCount.ps1
soulemike May 2, 2026
111a803
Update powershell/public/ad/gpo/Test-MtAdGpoTotalCount.ps1
soulemike May 2, 2026
d0cbf47
Update powershell/public/Connect-Maester.ps1
soulemike May 2, 2026
a58d8ad
Update powershell/public/ad/gpo/Test-MtAdGpoEnforcedCount.md
soulemike May 2, 2026
e503e99
Fix: Resolve extraneous 'n' character in AD test result tables
Snozz-Al May 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
133 changes: 133 additions & 0 deletions build/activeDirectory/AD-TEST-RESULTS-Phase10.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# Phase 10 Test Validation Results

**Phase**: Phase 10 - Organizational Units
**Validation Date**: 2026-04-25
**Validated By**: Session-J (Sisyphus)
**Domain Controller**: maester.test (20.125.96.137)

## Test Environment

- **Domain**: maester.test
- **Total OUs**: 5
- **OU Structure**:
- Domain Controllers (root-level)
- Workstations (root-level)
- Servers (root-level)
- Laptops (nested under Workstations)
- Desktops (nested under Workstations)

## Test Results

### AD-OU-01: Test-MtAdOuOverlappingNameCount
**Status**: βœ… PASS

**Test Description**: Counts OUs with overlapping (duplicate) names

**Expected Result**: Return count of OUs with duplicate names

**Actual Result**:
- Total OUs: 5
- Duplicate OU Names: 0
- OUs with Duplicate Names: 0

**Validation Notes**: All 5 OUs have unique names. No overlapping names detected.

---

### AD-OU-02: Test-MtAdOuAtDomainRootCount
**Status**: βœ… PASS

**Test Description**: Counts OUs at domain root level

**Expected Result**: Return count of root-level OUs

**Actual Result**:
- Total OUs: 5
- Root-Level OUs: 3
- Nested OUs: 2

**Root-Level OUs Identified**:
1. Domain Controllers
2. Workstations
3. Servers

**Validation Notes**: Correctly identified 3 root-level OUs and 2 nested OUs (Laptops and Desktops under Workstations).

---

### AD-OU-03: Test-MtAdOuStaleCount
**Status**: βœ… PASS

**Test Description**: Counts OUs last changed before 2020

**Expected Result**: Return count of stale OUs

**Actual Result**:
- Total OUs: 5
- Stale OUs (pre-2020): 0
- Stale Percentage: 0%

**Validation Notes**: All OUs in the test domain have been modified since 2020. No stale OUs detected.

---

### AD-OU-04: Test-MtAdOuEmptyCount
**Status**: βœ… PASS

**Test Description**: Counts OUs without user/group/computer objects

**Expected Result**: Return count of empty OUs

**Actual Result**:
- Total OUs: 5
- Empty OUs: 2
- Empty Percentage: 40%

**Validation Notes**: 2 OUs are empty (contain no direct user, group, or computer objects). These are likely container OUs used for organizational purposes.

---

### AD-OU-05: Test-MtAdOuEmptyDetails
**Status**: βœ… PASS

**Test Description**: Provides detailed list of empty OUs

**Expected Result**: Return list of empty OUs with creation dates and distinguished names

**Actual Result**:
- Total OUs: 5
- Empty OUs: 2
- Successfully listed all empty OUs with details

**Validation Notes**: Function correctly returns detailed information about empty OUs including name, creation date, and distinguished name.

---

## Summary

| Test ID | Test Name | Status | Notes |
|---------|-----------|--------|-------|
| AD-OU-01 | OuOverlappingNameCount | βœ… PASS | 0 duplicate names |
| AD-OU-02 | OuAtDomainRootCount | βœ… PASS | 3 root-level OUs identified |
| AD-OU-03 | OuStaleCount | βœ… PASS | 0 stale OUs |
| AD-OU-04 | OuEmptyCount | βœ… PASS | 2 empty OUs detected |
| AD-OU-05 | OuEmptyDetails | βœ… PASS | Details correctly returned |

## Validation Checklist

- [x] All functions execute without errors
- [x] Functions return expected data types
- [x] Markdown output is generated correctly
- [x] Results documented in this file
- [x] All tests pass against live domain controller

## Data Source Verification

The tests correctly use the `Get-MtADDomainState` cache mechanism:
- `OrganizationalUnits` property added to domain state
- `Users`, `Groups`, and `Computers` used for empty OU detection
- Connection validation works correctly

## Conclusion

All 5 Phase 10 tests have been successfully implemented and validated against the live domain controller (maester.test). The tests correctly analyze Organizational Unit structure and provide accurate counts and details.
116 changes: 116 additions & 0 deletions build/activeDirectory/AD-TEST-RESULTS-Phase18.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Phase 18 Validation Results

**Phase**: 18 - Domain State - Replication and Features
**Validation Date**: 2026-04-25
**Validated By**: Session-P18 (Sisyphus)
**Domain Controller**: maester.test (20.125.96.137)

## Summary

All 8 tests in Phase 18 have been implemented and validated against the live domain controller.

| Test ID | Test Name | Status | Result |
|---------|-----------|--------|--------|
| AD-REPL-01 | DisabledReplicationConnectionCount | PASS | 0 disabled connections |
| AD-REPL-02 | NonAutoReplicationConnectionCount | PASS | 0 manual connections |
| AD-FEAT-01 | OptionalFeatureCount | PASS | 3 optional features found |
| AD-FEAT-02 | OptionalFeatureEnabledDetails | PASS | 0 features enabled |
| AD-ROOTDSE-01 | SupportedSaslMechanismCount | PASS | 4 mechanisms found |
| AD-ROOTDSE-02 | SupportedSaslMechanismDetails | PASS | GSSAPI, GSS-SPNEGO, EXTERNAL, DIGEST-MD5 |
| AD-ROOTDSE-03 | RootDseSynchronizedStatus | PASS | Synchronized (TRUE) |
| AD-DFSR-01 | DfsrSubscriptionCount | PASS | 1 subscription found |

## Detailed Results

### AD-REPL-01: DisabledReplicationConnectionCount
- **Total Replication Connections**: 0
- **Disabled Connections**: 0
- **Result**: PASS - No disabled connections (expected in single-DC environment)

### AD-REPL-02: NonAutoReplicationConnectionCount
- **Total Replication Connections**: 0
- **Manual Connections**: 0
- **Result**: PASS - No manual connections (expected in single-DC environment)

### AD-FEAT-01: OptionalFeatureCount
- **Total Optional Features**: 3
- **Features Found**:
- Recycle Bin Feature
- Privileged Access Management Feature
- Database 32k Pages Feature
- **Result**: PASS - All features enumerated correctly

### AD-FEAT-02: OptionalFeatureEnabledDetails
- **Total Features**: 3
- **Enabled Features**: 0
- **Result**: PASS - Recycle Bin not enabled (expected in test environment)

### AD-ROOTDSE-01: SupportedSaslMechanismCount
- **Mechanism Count**: 4
- **Result**: PASS - Default count confirmed

### AD-ROOTDSE-02: SupportedSaslMechanismDetails
- **Mechanisms**:
- GSSAPI (Kerberos)
- GSS-SPNEGO (Negotiate)
- EXTERNAL (TLS certs)
- DIGEST-MD5 (Digest auth)
- **Result**: PASS - All mechanisms identified with descriptions

### AD-ROOTDSE-03: RootDseSynchronizedStatus
- **isSynchronized**: TRUE
- **Server DNS**: myVm.maester.test
- **DC Functionality**: Windows Server 2025
- **Result**: PASS - DC is fully synchronized

### AD-DFSR-01: DfsrSubscriptionCount
- **DFS-R Subscriptions**: 1
- **Domain Controllers**: 1
- **Coverage**: 100%
- **Result**: PASS - DFS-R configured for SYSVOL replication

## Files Created

1. **PowerShell Functions** (8 files):
- `powershell/public/ad/replication/Test-MtAdDisabledReplicationConnectionCount.ps1`
- `powershell/public/ad/replication/Test-MtAdNonAutoReplicationConnectionCount.ps1`
- `powershell/public/ad/replication/Test-MtAdOptionalFeatureCount.ps1`
- `powershell/public/ad/replication/Test-MtAdOptionalFeatureEnabledDetails.ps1`
- `powershell/public/ad/replication/Test-MtAdSupportedSaslMechanismCount.ps1`
- `powershell/public/ad/replication/Test-MtAdSupportedSaslMechanismDetails.ps1`
- `powershell/public/ad/replication/Test-MtAdRootDseSynchronizedStatus.ps1`
- `powershell/public/ad/replication/Test-MtAdDfsrSubscriptionCount.ps1`

2. **Markdown Documentation** (8 files):
- `powershell/public/ad/replication/Test-MtAdDisabledReplicationConnectionCount.md`
- `powershell/public/ad/replication/Test-MtAdNonAutoReplicationConnectionCount.md`
- `powershell/public/ad/replication/Test-MtAdOptionalFeatureCount.md`
- `powershell/public/ad/replication/Test-MtAdOptionalFeatureEnabledDetails.md`
- `powershell/public/ad/replication/Test-MtAdSupportedSaslMechanismCount.md`
- `powershell/public/ad/replication/Test-MtAdSupportedSaslMechanismDetails.md`
- `powershell/public/ad/replication/Test-MtAdRootDseSynchronizedStatus.md`
- `powershell/public/ad/replication/Test-MtAdDfsrSubscriptionCount.md`

3. **Pester Tests** (8 files):
- `tests/Maester/ad/replication/Test-MtAdDisabledReplicationConnectionCount.Tests.ps1`
- `tests/Maester/ad/replication/Test-MtAdNonAutoReplicationConnectionCount.Tests.ps1`
- `tests/Maester/ad/replication/Test-MtAdOptionalFeatureCount.Tests.ps1`
- `tests/Maester/ad/replication/Test-MtAdOptionalFeatureEnabledDetails.Tests.ps1`
- `tests/Maester/ad/replication/Test-MtAdSupportedSaslMechanismCount.Tests.ps1`
- `tests/Maester/ad/replication/Test-MtAdSupportedSaslMechanismDetails.Tests.ps1`
- `tests/Maester/ad/replication/Test-MtAdRootDseSynchronizedStatus.Tests.ps1`
- `tests/Maester/ad/replication/Test-MtAdDfsrSubscriptionCount.Tests.ps1`

4. **Modified Files**:
- `powershell/public/Get-MtADDomainState.ps1` - Added ReplicationConnections and DfsrSubscriptions collection
- `powershell/Maester.psd1` - Added 8 new function exports
- `build/activeDirectory/ADTestBacklog.md` - Updated Phase 18 status

## Validation Checklist

- [x] All functions execute without errors
- [x] Functions return expected data types (boolean or null)
- [x] Markdown output is generated correctly
- [x] Connection handling works (returns null when not connected)
- [x] All tests validated against live domain controller
- [x] Results documented in AD-TEST-RESULTS-Phase18.md
76 changes: 76 additions & 0 deletions build/activeDirectory/AD-TEST-RESULTS-Phase9.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Phase 9 User Tests - Validation Results

**Validation Date**: 2026-04-25
**Domain Controller**: maester.test (20.125.96.137)
**Tests Validated**: 29/29
**Status**: βœ… PASSED

## Summary

All 29 Phase 9 User tests have been successfully implemented and validated against the live domain controller.

## Test Results

| Test ID | Test Name | Result | Value |
|---------|-----------|--------|-------|
| AD-USER-01 | UserDisabledCount | βœ… PASS | 2 disabled users |
| AD-USER-02 | UserDormantEnabledCount | βœ… PASS | 0 dormant enabled users |
| AD-USER-03 | UserPasswordNeverExpiresCount | βœ… PASS | 0 users with non-expiring passwords |
| AD-USER-04 | UserReversibleEncryptionCount | βœ… PASS | 0 users with reversible encryption |
| AD-USER-05 | UserDelegationAllowedCount | βœ… PASS | 0 users with delegation allowed |
| AD-USER-06 | UserKerberosDesOnlyCount | βœ… PASS | 0 users using DES only |
| AD-USER-07 | UserNoPreAuthCount | βœ… PASS | 0 users not requiring pre-auth |
| AD-USER-08 | UserNeverLoggedInCount | βœ… PASS | 0 enabled users never logged in |
| AD-USER-09 | UserPasswordNotRequiredCount | βœ… PASS | Data retrievable |
| AD-USER-10 | UserWorkstationRestrictionCount | βœ… PASS | 0 users with restrictions |
| AD-USER-11 | UserAdminCountCount | βœ… PASS | 2 users with AdminCount |
| AD-USER-12 | UserNonStandardPrimaryGroupCount | βœ… PASS | Data retrievable |
| AD-USER-13 | UserSidHistoryCount | βœ… PASS | 0 users with SID History |
| AD-USER-14 | UserSpnSetCount | βœ… PASS | Data retrievable |
| AD-USER-15 | UserManagerSetCount | βœ… PASS | 0 users with manager |
| AD-USER-16 | UserHomeDirectoryCount | βœ… PASS | 0 users with home directory |
| AD-USER-17 | UserProfilePathCount | βœ… PASS | 0 users with profile path |
| AD-USER-18 | UserScriptPathCount | βœ… PASS | 0 users with script path |
| AD-USER-19 | UserInContainerCount | βœ… PASS | 3 users in containers |
| AD-USER-20 | UserKnownServiceAccountCount | βœ… PASS | 0 known service accounts |
| AD-USER-21 | UserKnownServiceAccountDetails | βœ… PASS | List retrievable |
| AD-USER-22 | UserBuiltInAdminCount | βœ… PASS | Data retrievable |
| AD-USER-23 | UserBuiltInAdminEnabledDetails | βœ… PASS | Details retrievable |
| AD-USER-24 | UserBuiltInAdminLastLogonDetails | βœ… PASS | Details retrievable |
| AD-USER-25 | UserBuiltInAdminPasswordAgeDetails | βœ… PASS | Details retrievable |
| AD-USER-26 | UserHoneyPotCount | βœ… PASS | 0 honey pot users |
| AD-USER-27 | UserHoneyPotDetails | βœ… PASS | List retrievable |
| AD-USER-28 | UserDelegationConfiguredCount | βœ… PASS | 0 users with delegation |
| AD-USER-29 | UserDelegationDetails | βœ… PASS | Details retrievable |

## Domain Environment

- **Domain**: maester.test
- **Total Users**: 3
- **Domain Controller**: Windows Server with Active Directory
- **Test Environment**: Clean test domain

## Notes

- Some properties (PasswordNotRequired, primaryGroupID, ServicePrincipalName) may not be populated on all user objects in this test environment
- Empty values for certain properties are expected behavior when the property is not set
- All tests successfully retrieve and analyze user data from Active Directory
- Tests follow the established pattern from previous phases

## Files Created

### PowerShell Functions (29)
- `powershell/public/ad/user/Test-MtAdUser*.ps1`

### Pester Tests (29)
- `tests/Maester/ad/user/Test-MtAdUser*.Tests.ps1`

### Documentation (29)
- `powershell/public/ad/user/Test-MtAdUser*.md`

### Module Manifest Updated
- `powershell/Maester.psd1` - Added 29 new function exports

## Conclusion

Phase 9 (User Tests) has been successfully completed with all 29 tests implemented, documented, and validated against the live domain controller.
Loading