Business value: This command provides visibility into the Azure AD Seamless SSO configuration, helping administrators ensure seamless single sign-on is properly set up and maintained. Who uses this: System Administrators responsible for managing Azure AD and Windows Server environments. Risks: Inaccurate or outdated SPN configurations can lead to authentication issues, impacting user productivity. Non-existent AZUREADSSOACC$ account in AD indicates that Seamless SSO is not enabled (GR-535). When a manager cares: * When users report authentication issues * During routine security audits and compliance checks
Day-to-Day Use
- Run
Get-AzureAdSsoSpnCandidateto retrieve the AZUREADSSOACC$ computer account SPNs and password age. - Review the output for RegisteredSpns, PwdLastSet, PasswordAgeDays, and RotationOverdue values.
(Get-AzureAdSsoSpnCandidate).RegisteredSpnsCode Examples
- Get AZUREADSSOACC$ account SPNs:
(Get-AzureAdSsoSpnCandidate).RegisteredSpns - Check password age in days:
(Get-AzureAdSsoSpnCandidate).PasswordAgeDays - Determine rotation overdue status:
(Get-AzureAdSsoSpnCandidate).RotationOverdue
Watchpoints
- Be cautious when interpreting results, as Azure AD Connect manages the AZUREADSSOACC$ account and its SPNs automatically.
- No write path exists for this command; it only provides read-only information.
What It Does
This command reads the AZUREADSSOACC$ computer object from Active Directory to determine: * Registered SPNs on the account * Password last-set timestamp (UTC) * Age of password in days (computed at call time)
Step-by-Step Recipe
- Run
Get-AzureAdSsoSpnCandidateto retrieve AZUREADSSOACC$ account information. - Check if RegisteredSpns, PwdLastSet, PasswordAgeDays, and RotationOverdue values are present.
Stuck?
- Consult the PowerShell module wiki for more detailed documentation.
- Reach out to your system administrator or Azure AD support team for assistance.
| 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. |
| Providers covered | AD.AzureADSSO |
| 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. |
This command adheres to standard PowerShell module best practices for data handling: * Data is retrieved from Active Directory using native cmdlets. * Transit: data is encrypted during transmission. * At-rest: data is stored securely on local system. Audit trail: no changes are made, so no audit trail required.
This is the sense step. It reads the current state and produces a candidate; nothing is changed. Providers: AD.AzureADSSO.
Example 1
Get-AzureAdSsoSpnCandidateReturns AZUREADSSOACC$ inventory from the current domain.
Example 2
Get-AzureAdSsoSpnCandidate -ReferenceDate ([datetime]'2026-07-01')Computes password age relative to the supplied date.
Example 3
Get-AzureAdSsoSpnCandidate -ReferenceDate (Get-Date).AddDays(-30)