Business value: This command is crucial for building a secure Service Principal Name (SPN) plan for SQL Server Analysis Services candidates, ensuring compliance with DR-524. Who uses this: IT administrators responsible for implementing and managing SPNs in their organization’s Active Directory. Risks: Failure to properly build an SPN plan can lead to security vulnerabilities and unauthorized access to Analysis Services instances. Managers should ensure that the correct procedure is followed when building the SPN plan. When a manager cares: * When introducing new Analysis Services instances into the environment * When reviewing and updating existing SPN plans for compliance with DR-524
Day-to-day use:
- Run
Get-SsasSpnCandidateto identify potential candidates for an SPN plan. - Pipe the output of
Get-SsasSpnCandidateintoNew-SsasSpnPlanto build a fully-populated SpnPlan object. - Examine the returned SpnPlan object to verify that it meets the DR-524 schema requirements.
Common patterns:
- Building an SPN plan for a single Analysis Services instance
- Updating existing SPN plans with new service account information
Code examples:
$spnCandidates = Get-SsasSpnCandidate -TargetComputer "MyAnalysisServices"
$spsnPlan = New-SsasSpnPlan -Candidate $spnCandidatesWatchpoints:
- Ensure that the input object for
New-SsasSpnPlanis a valid SpnCandidate object. - Verify that the returned SpnPlan object meets the DR-524 schema requirements.
What this does: This command builds an SPN plan (DR-524) for a SQL Server Analysis Services candidate by accepting an SpnCandidate object and resolving the service account’s Distinguished Name from Active Directory. Step-by-step recipe:
- Run
Get-SsasSpnCandidateto identify potential candidates for an SPN plan. - Pipe the output of
Get-SsasSpnCandidateintoNew-SsasSpnPlanto build a fully-populated SpnPlan object. - Examine the returned SpnPlan object to verify that it meets the DR-524 schema requirements.
What to do when stuck:
- Check the input object for errors or inconsistencies.
- Verify that the service account’s Distinguished Name is correctly resolved from Active Directory.
- Consult the module documentation or seek assistance from an experienced IT administrator.
| Field | Value |
|---|---|
| Vendor | Detent Point LLC |
| Product | SpnManager 0.4.0 |
| Licence | Proprietary - licensed, not sold. See LICENSE. |
| Operational impact | Read-only. Queries Active Directory and reports findings; changes nothing. |
| Rights required | Directory read access. Some providers additionally need rights to read delegation and encryption-type attributes. |
| Providers covered | SQL.SSAS |
| Approval recommendation | Approve for general operational use. It cannot alter directory state. |
Licence terms are proprietary and are supplied with the purchase, subscription or evaluation agreement. No open-source licence is granted.
| What | Why |
|---|---|
| Windows PowerShell 5.1 or later | Declared by the module manifest. |
| ActiveDirectory 1.0.0.0 | Required module. Ships with RSAT; install the Active Directory PowerShell feature. |
| A reachable domain controller | Every provider reads from Active Directory. |
| An account with directory read access | Needed to enumerate accounts and their SPNs. |
Data handling: This command handles sensitive information, including service account Distinguished Names and SPNs. Transit: Data is transmitted over the local network during execution. At rest: Data is stored in memory temporarily while building the SpnPlan object. Audit trail: This command generates no audit trail entries, as it only builds an SPN plan without making any changes to AD or SPNs. Compliance requirements:
- DR-524 schema must be followed for all Analysis Services instances.
- Service account Distinguished Names and SPNs must be securely stored.
This is the plan step. It turns a candidate into a plan showing what is missing; nothing is changed. Its output is normally piped into Test-SpnPlan. Providers: SQL.SSAS.
Example 1
Get-SsasSpnCandidate -TargetComputer 'srv01.corp.example.com' | New-SsasSpnPlanPipes a discovered SSAS candidate directly into the plan builder.
Also uses: Get-SsasSpnCandidate (Sense).
Example 2
$candidate = Get-SsasSpnCandidate -TargetComputer 'olap01.corp.example.com'
New-SsasSpnPlan -Candidate $candidateBuilds an SpnPlan from an SSAS candidate captured in a variable.
Also uses: Get-SsasSpnCandidate (Sense).
Example 3
New-SsasSpnPlan -Candidate $candidate | Test-SpnPlanValidates a single plan without going through the candidate provider.
Also uses: Test-SpnPlan (Test).