Get-PSScriptBuilderTemplateAnalysis¶
Analyzes a PSScriptBuilder template file and returns comprehensive analysis information.
Description¶
Validates a template against the current collector configuration and returns a detailed result:
validation status and errors, the detected validation mode (Free, Hybrid, or Ordered), and
a full placeholder comparison — found, expected, missing, and unknown. See
Validation Modes for how the mode is determined, and
Validate Your Template for the full workflow.
For a plain $true/$false result instead, use
Test-PSScriptBuilderTemplate. This cmdlet focuses on
template-specific information only — for topological order, component counts, or the dependency
graph itself, use Get-PSScriptBuilderDependencyAnalysis
separately.
Parameters¶
| Name | Type | Description |
|---|---|---|
-ContentCollector |
PSScriptBuilderContentCollector |
Required. The collector configuration to validate against. Accepts pipeline input, enabling fluent chaining from Add-PSScriptBuilderCollector. |
-TemplatePath |
string | Required. Path to the template file to analyze. |
-OrderedComponentsKey |
string | The combined-components placeholder key, for Ordered/Hybrid Mode templates. Default: "ORDERED_COMPONENTS". |
Examples¶
Analyze a template and branch on validity¶
$result = New-PSScriptBuilderContentCollector |
Add-PSScriptBuilderCollector -Type Class -IncludePath "src\Classes" |
Add-PSScriptBuilderCollector -Type Function -IncludePath "src\Public" |
Get-PSScriptBuilderTemplateAnalysis -TemplatePath "template.psm1"
if ($result.IsValid) {
Write-Host "Template is valid - Mode: $($result.ValidationMode)"
}
else {
Write-Warning "Template validation failed:"
$result.ValidationErrors | ForEach-Object { Write-Warning " $_" }
}
Inspect placeholder mismatches¶
$result = Get-PSScriptBuilderTemplateAnalysis -ContentCollector $contentCollector -TemplatePath "template.psm1"
if ($result.MissingPlaceholders.Count -gt 0) {
Write-Host "Missing placeholders: $($result.MissingPlaceholders -join ', ')"
}
if ($result.UnknownPlaceholders.Count -gt 0) {
Write-Host "Unknown placeholders: $($result.UnknownPlaceholders -join ', ')"
}
Pipe into Format-PSScriptBuilderTemplateAnalysis for a full report¶
Get-PSScriptBuilderTemplateAnalysis -ContentCollector $contentCollector -TemplatePath "template.psm1" |
Format-PSScriptBuilderTemplateAnalysis
Output¶
Returns a
PSScriptBuilderTemplateAnalysisResult
object.