The New-SharePointSpnPlan cmdlet helps ensure that SharePoint service accounts are properly configured to maintain high availability and security. Business value:
- Ensures seamless failover in case of account or site issues
- Reduces risk of unauthorized access due to misconfigured SPNs
- Simplifies troubleshooting by providing a clear plan for SPN registration
Who uses this cmdlet: * SharePoint administrators responsible for ensuring high availability and security * IT professionals who manage Active Directory and service accounts
Risks:
- Failure to configure SPNs correctly can lead to downtime or unauthorized access
- Manual configuration of SPNs can be time-consuming and prone to errors
When a manager cares:
- When experiencing issues with SharePoint availability or security
- When implementing new SharePoint deployments or upgrades
- When reviewing IT policies for compliance with security best practices
To use the New-SharePointSpnPlan cmdlet, follow these steps: 1. Run Get-SharePointSpnCandidate to retrieve a list of potential service account candidates. 2. Select one candidate using the -Candidate parameter and pipe it to the New-SharePointSpnPlan cmdlet. 3. The cmdlet will resolve the service account’s DistinguishedName from Active Directory using Get-ADObject. 4. Output will be a DR-524 SpnPlan describing the HTTP SPNs to register.
Example code:
$candidates = Get-SharePointSpnCandidate
$candidate = $candidates | Where-Object { $_.Account -eq "MyAppPoolAccount" }
$spnPlan = New-SharePointSpnPlan -Candidate $candidateWatchpoints:
- Ensure the
-Candidateparameter is set correctly to avoid incorrect SPN registration. - Verify that Active Directory access is configured properly for
Get-ADObject.
The New-SharePointSpnPlan cmdlet takes a SharePoint service account candidate and generates a plan for registering HTTP SPNs.
- What is the purpose of this cmdlet?
- To ensure high availability and security in SharePoint by configuring correct SPNs.
- What does it do with a candidate?
- Resolves the DistinguishedName from Active Directory using
Get-ADObject.
- Resolves the DistinguishedName from Active Directory using
- What output can you expect?
- A DR-524 SpnPlan describing HTTP SPNs to register.
If stuck: * Check the -Candidate parameter is set correctly. * Verify Active Directory access for Get-ADObject.
| 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 | AD.SharePoint |
| 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. |
The New-SharePointSpnPlan cmdlet handles data as follows:
- In-transit: Uses secure connections (dependent on module dependencies)
- At-rest: Data is stored securely in accordance with Active Directory access controls
- Audit trail: Output plan is logged and can be used for auditing purposes
Compliance requirements:
- SharePoint administrators must ensure SPNs are correctly configured to meet security and availability requirements.
- IT professionals must verify that Active Directory access meets compliance standards.
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: AD.SharePoint.
Example 1
Get-SharePointSpnCandidate -WebApplicationData $d | New-SharePointSpnPlanAlso uses: Get-SharePointSpnCandidate (Sense).
Example 2
New-SharePointSpnPlan -Candidate $candidateExample 3
Get-SharePointSpnCandidate -WebApplicationData $webApps | New-SharePointSpnPlan | Test-SpnPlanAlso uses: Get-SharePointSpnCandidate (Sense), Test-SpnPlan (Test).