TestimoX

API Reference

Command

Get-TestimoXBaseline

Namespace TestimoX.PowerShell
Outputs
ComputerX.Controls.ICxControl TestimoX.Baselines.BaselineComparisonRow TestimoX.Baselines.BaselineControlVariants TestimoX.Baselines.BaselineListEntry TestimoX.Baselines.Crosswalk.CoverageRow TestimoX.Baselines.Crosswalk.CrosswalkDocRow TestimoX.Baselines.Crosswalk.CrosswalkMatchRow TestimoX.Baselines.Crosswalk.CrosswalkSuggester+LinkSuggestion TestimoX.Baselines.Crosswalk.DocSuggester+DocSuggestion TestimoX.Baselines.Crosswalk.GapItem TestimoX.Baselines.Crosswalk.RuleCrosswalkReport

Explores baseline catalogs, vendor control mappings, and TestimoX crosswalk coverage.

Examples

Authored help example

Example 1: List every baseline catalog currently registered in the build

PS>


Get-TestimoXBaseline
        

Use this as the starting point when you need the exact baseline identifiers before drilling into a specific vendor/product/version.

Example 2: List only Microsoft baselines

PS>


Get-TestimoXBaseline -VendorIdFilter MSB
        

This narrows the catalog to Microsoft Security Baseline entries, which is helpful before a Windows Server review.

Example 3: Inspect controls for a specific baseline identifier

PS>


Get-TestimoXBaseline -Id 'MSB/Windows-Server-2025/1_0'
        

The returned controls can be piped into further filtering or exported for evidence packs.

Example 4: Inspect controls using vendor, product, and version selectors

PS>


Get-TestimoXBaseline -VendorId MSB -ProductId WindowsServer2025 -Version '1_0'
        

Example 5: Compare vendor guidance for Windows Server 2025 and return only the differences

PS>


Get-TestimoXBaseline -Compare -ProductId WindowsServer2025 -VersionWildcard '1_*' -OnlyDiff
        

This is useful when you want to see where CIS, STIG, and Microsoft guidance diverge before choosing a target baseline.

Example 6: Review crosswalk coverage across all TestimoX rules

PS>


Get-TestimoXBaseline -CrosswalkSummary
        

Example 7: Inspect vendor matches and external documentation for a single rule

PS>


Get-TestimoXBaseline -Crosswalk -RuleName DomainPasswordPolicy
Get-TestimoXBaseline -CrosswalkMatches -RuleName DomainPasswordPolicy
Get-TestimoXBaseline -CrosswalkDocs -RuleName DomainPasswordPolicy
        

These views help validate the evidence behind a rule before you publish guidance on the website.

Example 8: Suggest missing documentation links for a rule that still needs enrichment

PS>


Get-TestimoXBaseline -SuggestDocs -RuleName DomainPasswordPolicy -MinConfidence 0.75
        

Use this during crosswalk curation to spot likely PingCastle or Purple Knight references that are not yet linked.

Common Parameters

This command supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.

For more information, see about_CommonParameters.

Syntax

Get-TestimoXBaseline -Id <string> [-AsVariants] [<CommonParameters>]
#
Parameter set: By Id

Parameters

Id string requiredposition: 0pipeline: false
Baseline identifier in Vendor/Product/Version format, e.g. 'MSB/Windows-Server-2025/1_0'.
AsVariants SwitchParameter optionalposition: namedpipeline: false
Returns simplified variant view (one row per control with vendor desired values) instead of raw controls.

Outputs

ComputerX.Controls.ICxControl, TestimoX.Baselines.BaselineComparisonRow, TestimoX.Baselines.BaselineControlVariants, TestimoX.Baselines.BaselineListEntry, TestimoX.Baselines.Crosswalk.CoverageRow, TestimoX.Baselines.Crosswalk.CrosswalkDocRow, TestimoX.Baselines.Crosswalk.CrosswalkMatchRow, TestimoX.Baselines.Crosswalk.CrosswalkSuggester+LinkSuggestion, TestimoX.Baselines.Crosswalk.DocSuggester+DocSuggestion, TestimoX.Baselines.Crosswalk.GapItem, TestimoX.Baselines.Crosswalk.RuleCrosswalkReport

Get-TestimoXBaseline -ProductId <Unknown> -VendorId <CIS|STIG|MSB|Custom> -Version <string> [-AsVariants] [<CommonParameters>]
#
Parameter set: By Version

Parameters

ProductId CxProduct requiredposition: namedpipeline: falsevalues: 11
Baseline product when using 'ByVendor' or 'Compare' (e.g., WindowsServer2025, Windows10, Windows11). Possible values: Unknown, WindowsServer2016, WindowsServer2019, WindowsServer2022, WindowsServer2025, Windows11_22H2, Windows11_23H2, Windows11_24H2, Windows10_1507, Windows10_1607, Windows10_1809
Possible values: Unknown, WindowsServer2016, WindowsServer2019, WindowsServer2022, WindowsServer2025, Windows11_22H2, Windows11_23H2, Windows11_24H2, Windows10_1507, Windows10_1607, Windows10_1809
VendorId CxVendor[] requiredposition: namedpipeline: falsevalues: 4
Vendor filter or selector. In 'List' it filters results; in 'ByVendor' provide exactly one. Possible values: CIS, STIG, MSB, Custom
Possible values: CIS, STIG, MSB, Custom
Version string requiredposition: namedpipeline: false
Baseline version string for 'ByVendor' (e.g., '1_0', 'V2R10', '22H2').
AsVariants SwitchParameter optionalposition: namedpipeline: false
Returns simplified variant view (one row per control with vendor desired values) instead of raw controls.

Outputs

ComputerX.Controls.ICxControl, TestimoX.Baselines.BaselineComparisonRow, TestimoX.Baselines.BaselineControlVariants, TestimoX.Baselines.BaselineListEntry, TestimoX.Baselines.Crosswalk.CoverageRow, TestimoX.Baselines.Crosswalk.CrosswalkDocRow, TestimoX.Baselines.Crosswalk.CrosswalkMatchRow, TestimoX.Baselines.Crosswalk.CrosswalkSuggester+LinkSuggestion, TestimoX.Baselines.Crosswalk.DocSuggester+DocSuggestion, TestimoX.Baselines.Crosswalk.GapItem, TestimoX.Baselines.Crosswalk.RuleCrosswalkReport

Get-TestimoXBaseline [-AsVariants] -VendorId <CIS|STIG|MSB|Custom> [-VendorIdFilter <CIS|STIG|MSB|Custom>] [<CommonParameters>]
#
Parameter set: By VendorIdFilter

Parameters

AsVariants SwitchParameter optionalposition: namedpipeline: false
Returns simplified variant view (one row per control with vendor desired values) instead of raw controls.
VendorId CxVendor[] requiredposition: namedpipeline: falsevalues: 4
Vendor filter or selector. In 'List' it filters results; in 'ByVendor' provide exactly one. Possible values: CIS, STIG, MSB, Custom
Possible values: CIS, STIG, MSB, Custom
VendorIdFilter CxVendor optionalposition: namedpipeline: falsevalues: 4
Optional vendor filter for the default 'List' view. Possible values: CIS, STIG, MSB, Custom
Possible values: CIS, STIG, MSB, Custom

Outputs

ComputerX.Controls.ICxControl, TestimoX.Baselines.BaselineComparisonRow, TestimoX.Baselines.BaselineControlVariants, TestimoX.Baselines.BaselineListEntry, TestimoX.Baselines.Crosswalk.CoverageRow, TestimoX.Baselines.Crosswalk.CrosswalkDocRow, TestimoX.Baselines.Crosswalk.CrosswalkMatchRow, TestimoX.Baselines.Crosswalk.CrosswalkSuggester+LinkSuggestion, TestimoX.Baselines.Crosswalk.DocSuggester+DocSuggestion, TestimoX.Baselines.Crosswalk.GapItem, TestimoX.Baselines.Crosswalk.RuleCrosswalkReport

Get-TestimoXBaseline -Compare -ProductId <Unknown> [-AsTable] [-AsVariants] [-OnlyDiff] -VendorId <CIS|STIG|MSB|Custom> [-VersionWildcard <string>] [<CommonParameters>]
#
Parameter set: By Compare

Parameters

Compare SwitchParameter requiredposition: namedpipeline: false
Switch to run baseline comparison for a product across vendors.
ProductId CxProduct requiredposition: namedpipeline: falsevalues: 11
Baseline product when using 'ByVendor' or 'Compare' (e.g., WindowsServer2025, Windows10, Windows11). Possible values: Unknown, WindowsServer2016, WindowsServer2019, WindowsServer2022, WindowsServer2025, Windows11_22H2, Windows11_23H2, Windows11_24H2, Windows10_1507, Windows10_1607, Windows10_1809
Possible values: Unknown, WindowsServer2016, WindowsServer2019, WindowsServer2022, WindowsServer2025, Windows11_22H2, Windows11_23H2, Windows11_24H2, Windows10_1507, Windows10_1607, Windows10_1809
AsTable SwitchParameter optionalposition: namedpipeline: false
Output comparison rows as a table (hint for callers/pipelines).
AsVariants SwitchParameter optionalposition: namedpipeline: false
Returns simplified variant view (one row per control with vendor desired values) instead of raw controls.
OnlyDiff SwitchParameter optionalposition: namedpipeline: false
When set, emit only rows where Desired/Comparator/ValueKind differ across vendors.
VendorId CxVendor[] requiredposition: namedpipeline: falsevalues: 4
Vendor filter or selector. In 'List' it filters results; in 'ByVendor' provide exactly one. Possible values: CIS, STIG, MSB, Custom
Possible values: CIS, STIG, MSB, Custom
VersionWildcard string optionalposition: namedpipeline: false
Version wildcard for comparison (default '*'). Example: '1_*' or 'V2R*'.

Outputs

ComputerX.Controls.ICxControl, TestimoX.Baselines.BaselineComparisonRow, TestimoX.Baselines.BaselineControlVariants, TestimoX.Baselines.BaselineListEntry, TestimoX.Baselines.Crosswalk.CoverageRow, TestimoX.Baselines.Crosswalk.CrosswalkDocRow, TestimoX.Baselines.Crosswalk.CrosswalkMatchRow, TestimoX.Baselines.Crosswalk.CrosswalkSuggester+LinkSuggestion, TestimoX.Baselines.Crosswalk.DocSuggester+DocSuggestion, TestimoX.Baselines.Crosswalk.GapItem, TestimoX.Baselines.Crosswalk.RuleCrosswalkReport

Get-TestimoXBaseline -CrosswalkSummary [-AsVariants] [<CommonParameters>]
#
Parameter set: By CrosswalkSummary

Parameters

CrosswalkSummary SwitchParameter requiredposition: namedpipeline: false
When set, outputs a crosswalk coverage summary per TestimoX rule (✔️ complete, ⛓️‍💥 partial, ⛔ none) across vendors and doc sources.
AsVariants SwitchParameter optionalposition: namedpipeline: false
Returns simplified variant view (one row per control with vendor desired values) instead of raw controls.

Outputs

ComputerX.Controls.ICxControl, TestimoX.Baselines.BaselineComparisonRow, TestimoX.Baselines.BaselineControlVariants, TestimoX.Baselines.BaselineListEntry, TestimoX.Baselines.Crosswalk.CoverageRow, TestimoX.Baselines.Crosswalk.CrosswalkDocRow, TestimoX.Baselines.Crosswalk.CrosswalkMatchRow, TestimoX.Baselines.Crosswalk.CrosswalkSuggester+LinkSuggestion, TestimoX.Baselines.Crosswalk.DocSuggester+DocSuggestion, TestimoX.Baselines.Crosswalk.GapItem, TestimoX.Baselines.Crosswalk.RuleCrosswalkReport

Get-TestimoXBaseline -Crosswalk -RuleName <string> [-AsVariants] [<CommonParameters>]
#
Parameter set: By Crosswalk + RuleName

Parameters

Crosswalk SwitchParameter requiredposition: namedpipeline: false
When set with -RuleName, prints vendor guidance for a specific TestimoX rule (resolved mappings and docs).
RuleName string requiredposition: namedpipeline: false
TestimoX rule name for crosswalk details (e.g., 'DomainPasswordPolicy').
AsVariants SwitchParameter optionalposition: namedpipeline: false
Returns simplified variant view (one row per control with vendor desired values) instead of raw controls.

Outputs

ComputerX.Controls.ICxControl, TestimoX.Baselines.BaselineComparisonRow, TestimoX.Baselines.BaselineControlVariants, TestimoX.Baselines.BaselineListEntry, TestimoX.Baselines.Crosswalk.CoverageRow, TestimoX.Baselines.Crosswalk.CrosswalkDocRow, TestimoX.Baselines.Crosswalk.CrosswalkMatchRow, TestimoX.Baselines.Crosswalk.CrosswalkSuggester+LinkSuggestion, TestimoX.Baselines.Crosswalk.DocSuggester+DocSuggestion, TestimoX.Baselines.Crosswalk.GapItem, TestimoX.Baselines.Crosswalk.RuleCrosswalkReport

Get-TestimoXBaseline -CrosswalkMatches [-AsVariants] [<CommonParameters>]
#
Parameter set: By CrosswalkMatches

Parameters

CrosswalkMatches SwitchParameter requiredposition: namedpipeline: false
Emits typed rows of vendor baseline matches for a single TestimoX rule.
AsVariants SwitchParameter optionalposition: namedpipeline: false
Returns simplified variant view (one row per control with vendor desired values) instead of raw controls.

Outputs

ComputerX.Controls.ICxControl, TestimoX.Baselines.BaselineComparisonRow, TestimoX.Baselines.BaselineControlVariants, TestimoX.Baselines.BaselineListEntry, TestimoX.Baselines.Crosswalk.CoverageRow, TestimoX.Baselines.Crosswalk.CrosswalkDocRow, TestimoX.Baselines.Crosswalk.CrosswalkMatchRow, TestimoX.Baselines.Crosswalk.CrosswalkSuggester+LinkSuggestion, TestimoX.Baselines.Crosswalk.DocSuggester+DocSuggestion, TestimoX.Baselines.Crosswalk.GapItem, TestimoX.Baselines.Crosswalk.RuleCrosswalkReport

Get-TestimoXBaseline -CrosswalkDocs [-AsVariants] [<CommonParameters>]
#
Parameter set: By CrosswalkDocs

Parameters

CrosswalkDocs SwitchParameter requiredposition: namedpipeline: false
Emits typed rows of document references (PingCastle/PurpleKnight) for a single TestimoX rule.
AsVariants SwitchParameter optionalposition: namedpipeline: false
Returns simplified variant view (one row per control with vendor desired values) instead of raw controls.

Outputs

ComputerX.Controls.ICxControl, TestimoX.Baselines.BaselineComparisonRow, TestimoX.Baselines.BaselineControlVariants, TestimoX.Baselines.BaselineListEntry, TestimoX.Baselines.Crosswalk.CoverageRow, TestimoX.Baselines.Crosswalk.CrosswalkDocRow, TestimoX.Baselines.Crosswalk.CrosswalkMatchRow, TestimoX.Baselines.Crosswalk.CrosswalkSuggester+LinkSuggestion, TestimoX.Baselines.Crosswalk.DocSuggester+DocSuggestion, TestimoX.Baselines.Crosswalk.GapItem, TestimoX.Baselines.Crosswalk.RuleCrosswalkReport

Get-TestimoXBaseline -CrosswalkGaps [-AsVariants] [<CommonParameters>]
#
Parameter set: By CrosswalkGaps

Parameters

CrosswalkGaps SwitchParameter requiredposition: namedpipeline: false
Emits gaps: items present in vendor baselines/docs (STIG/CIS/MSB, PingCastle, PurpleKnight) that are not referenced by any TestimoX rule crosswalk.
AsVariants SwitchParameter optionalposition: namedpipeline: false
Returns simplified variant view (one row per control with vendor desired values) instead of raw controls.

Outputs

ComputerX.Controls.ICxControl, TestimoX.Baselines.BaselineComparisonRow, TestimoX.Baselines.BaselineControlVariants, TestimoX.Baselines.BaselineListEntry, TestimoX.Baselines.Crosswalk.CoverageRow, TestimoX.Baselines.Crosswalk.CrosswalkDocRow, TestimoX.Baselines.Crosswalk.CrosswalkMatchRow, TestimoX.Baselines.Crosswalk.CrosswalkSuggester+LinkSuggestion, TestimoX.Baselines.Crosswalk.DocSuggester+DocSuggestion, TestimoX.Baselines.Crosswalk.GapItem, TestimoX.Baselines.Crosswalk.RuleCrosswalkReport

Get-TestimoXBaseline -SuggestLinks [-AsVariants] [-MinConfidence <double>] [<CommonParameters>]
#
Parameter set: By SuggestLinks

Parameters

SuggestLinks SwitchParameter requiredposition: namedpipeline: false
Suggests Domain ↔ DC rule links based on overlapping baseline anchors (AccountPolicy/Audit/Registry/SecurityOption/UserRight/Service).
AsVariants SwitchParameter optionalposition: namedpipeline: false
Returns simplified variant view (one row per control with vendor desired values) instead of raw controls.
MinConfidence double optionalposition: namedpipeline: false
Minimum confidence (0..1) for link suggestions; default 0.6.

Outputs

ComputerX.Controls.ICxControl, TestimoX.Baselines.BaselineComparisonRow, TestimoX.Baselines.BaselineControlVariants, TestimoX.Baselines.BaselineListEntry, TestimoX.Baselines.Crosswalk.CoverageRow, TestimoX.Baselines.Crosswalk.CrosswalkDocRow, TestimoX.Baselines.Crosswalk.CrosswalkMatchRow, TestimoX.Baselines.Crosswalk.CrosswalkSuggester+LinkSuggestion, TestimoX.Baselines.Crosswalk.DocSuggester+DocSuggestion, TestimoX.Baselines.Crosswalk.GapItem, TestimoX.Baselines.Crosswalk.RuleCrosswalkReport

Get-TestimoXBaseline -SuggestDocs [-AsVariants] [<CommonParameters>]
#
Parameter set: By SuggestDocs

Parameters

SuggestDocs SwitchParameter requiredposition: namedpipeline: false
Suggests documentation (PingCastle/PurpleKnight) for a rule name based on keyword overlap with unified anchors.
AsVariants SwitchParameter optionalposition: namedpipeline: false
Returns simplified variant view (one row per control with vendor desired values) instead of raw controls.

Outputs

ComputerX.Controls.ICxControl, TestimoX.Baselines.BaselineComparisonRow, TestimoX.Baselines.BaselineControlVariants, TestimoX.Baselines.BaselineListEntry, TestimoX.Baselines.Crosswalk.CoverageRow, TestimoX.Baselines.Crosswalk.CrosswalkDocRow, TestimoX.Baselines.Crosswalk.CrosswalkMatchRow, TestimoX.Baselines.Crosswalk.CrosswalkSuggester+LinkSuggestion, TestimoX.Baselines.Crosswalk.DocSuggester+DocSuggestion, TestimoX.Baselines.Crosswalk.GapItem, TestimoX.Baselines.Crosswalk.RuleCrosswalkReport