Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Author: Justin Turner, Senior Support Escalation Engineer with the Windows group
Note
Deze inhoud wordt geschreven door een klantondersteuningstechnicus van Microsoft en is bedoeld voor ervaren beheerders en systeemarchitecten die op zoek zijn naar diepere technische uitleg van functies en oplossingen in Windows Server 2012 R2 dan onderwerpen op TechNet meestal bieden. Het heeft echter niet dezelfde bewerkingspassen ondergaan, dus sommige van de taal lijkt misschien minder professioneel dan wat doorgaans op TechNet wordt gevonden.
Overview
Domeincontrollers met Windows Server 2012 R2 blokkeren het maken van dubbele service-principalnamen (SPN) en UPN (User Principal Names). Dit geldt ook als het herstel of de reanimatie van een verwijderd object of het hernoemen van een object tot een duplicaat zou leiden.
Background
Dubbele SPN-namen (Service Principal Names) treden vaak op en leiden tot verificatiefouten en kunnen leiden tot overmatig LSASS CPU-gebruik. Er is geen in-box-methode om de toevoeging van een dubbele SPN of UPN te blokkeren. *
Dubbele UPN-waarden verbreken synchronisatie tussen on-premises AD en Office 365.
*Setspn.exe wordt vaak gebruikt om nieuwe SPN's te maken en functioneel is ingebouwd in de versie die is uitgebracht met Windows Server 2008 waarmee een controle op duplicaten wordt toegevoegd.
Tabel SEQ Tabel \* ARABIC 1: Uniciteit van UPN en SPN
Feature | Comment |
---|---|
UPN uniqueness | Dubbele UPN's breken synchronisatie van on-premises AD-accounts met Microsoft Entra ID-services zoals Office 365. |
SPN uniqueness | Kerberos vereist SPN's voor wederzijdse verificatie. Dubbele SPN's leiden tot verificatiefouten. |
For more information about uniqueness requirements for UPNs and SPNs, see Uniqueness Constraints.
Symptoms
Foutcodes 8467 of 8468 of hun hex-, symbolische of tekenreeksequivalenten worden vastgelegd in verschillende dialoogvensters op het scherm en in gebeurtenis-id 2974 in het gebeurtenislogboek van Directory Services. De poging om een dubbele UPN of SPN te maken, wordt alleen onder de volgende omstandigheden geblokkeerd:
- De schrijfbewerking wordt verwerkt door een Windows Server 2012 R2 DC
TABEL SEQ Table \* ARABIC 2: UPN- en SPN-foutcodes voor uniekheid
Decimal | Hex | Symbolic | String |
---|---|---|---|
8647 | 21C7 | ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST | De bewerking is mislukt omdat de SPN-waarde die is opgegeven voor toevoeging/wijziging, niet uniek is voor het hele forest. |
8648 | 21C8 | ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST | De bewerking is mislukt omdat de UPN-waarde die is opgegeven voor toevoeging/wijziging, niet uniek is voor het hele forest. |
Het maken van nieuwe gebruikers mislukt als UPN niet uniek is
DSA.msc
De gebruikersaanmeldingsnaam die u hebt gekozen, is al in gebruik in deze onderneming. Kies een andere aanmeldingsnaam en probeer het opnieuw.
Een bestaand account wijzigen:
De opgegeven aanmeldingsnaam van de gebruiker bestaat al in de onderneming. Geef een nieuw voorvoegsel op door het voorvoegsel te wijzigen of een ander achtervoegsel in de lijst te selecteren.
Active Directory-beheercentrum (DSAC.exe)
Een poging om een nieuwe gebruiker te maken in Active Directory-beheercentrum met een UPN die al bestaat, retourneert de volgende fout.
nl-NL:
Figure SEQ Figure \* ARABIC 1 fout weergegeven in AD Beheercentrum wanneer het aanmaken van een nieuwe gebruiker mislukt vanwege dubbele UPN
Gebeurtenis 2974 Bron: ActiveDirectory_DomainService
laat zien
Figuur SEQ Figure \* ARABIC 2 gebeurtenis-id 2974 met fout 8648
De gebeurtenis 2974 bevat de waarde die is geblokkeerd en een lijst met een of meer objecten (maximaal 10) die die waarde al bevatten. In de volgende afbeelding ziet u dat de upn-kenmerkwaarde dhunt@blue.contoso.com al bestaat op vier andere objecten. Omdat dit een nieuwe functie is in Windows Server 2012 R2, zal in een gemengde omgeving het per ongeluk aanmaken van dubbele UPN's en SPN's nog steeds plaatsvinden wanneer down-level domeincontrollers het schrijfverzoek verwerken.
Afbeelding SEQ Afbeelding * ARABISCH 3 Gebeurtenis 2974 met alle objecten die de dubbele UPN bevatten
Tip
Controleer regelmatig evenement-ID 2974s om te:
- Identificeer pogingen om dubbele UPN's of SPN's te maken.
- objecten identificeren die al duplicaten bevatten
8648 = "De bewerking is mislukt omdat de UPN-waarde die is opgegeven voor toevoeging/wijziging niet uniek is in het forest."
SetSPN:
Setspn.exe has had duplicate SPN detection built-in to it since the Windows Server 2008 release when using the "-S" option. You can bypass the duplicate SPN detection by using the "-A" option however. Het maken van een dubbele SPN wordt geblokkeerd bij het doelwit maken van een Windows Server 2012 R2 DC met behulp van SetSPN met de optie -A. Het weergegeven foutbericht is hetzelfde als het foutbericht dat wordt weergegeven bij het gebruik van de optie -S: 'Dubbele SPN gevonden, afgebroken bewerking!'
ADSIEDIT:
Operation failed. Error code: 0x21c8
The operation failed because UPN value provided for addition/modification is not unique forest-wide.
000021C8: AtrErr: DSID-03200BBA, #1: 0: 000021C8: DSID-03200BBA, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 90290 (userPrincipalName)
Figure SEQ Figure \* ARABIC 4 Foutbericht weergegeven in ADSIEdit bij het toevoegen van een dubbele UPN wordt geblokkeerd
Windows PowerShell
Windows Server 2012 R2:
PowerShell die wordt uitgevoerd vanaf Server 2012 gericht op een Windows Server 2012 R2 DC:
DSAC.exe draait op Windows Server 2012 en richt zich op een Windows Server 2012 R2 DC:
Figuur SEQ Figuur \* ARABISCH 5 DSAC-gebruiker fout bij het maken op een niet-Windows Server 2012 R2 terwijl gericht op Windows Server 2012 R2 DC
Afbeelding SEQ Afbeelding \* ARABIC 6 Fout bij DSAC-gebruikerswijziging op een niet-Windows Server 2012 R2 terwijl Windows Server 2012 R2 DC wordt ingesteld
Herstellen van een object dat tot een dubbele UPN zou leiden, mislukt:
Er wordt geen gebeurtenis geregistreerd wanneer een object niet kan worden hersteld vanwege een dubbele UPN/SPN.
De UPN van het object moet uniek zijn om het te kunnen herstellen.
De UPN identificeren die zich in het object in de Prullenbak bevindt
Alle objecten met dezelfde waarde identificeren
Verwijder de dubbele UPN(s)
Identificeer de conflicterende UPN op het verwijderde objectUsing repadmin.exe
Repadmin /showattr DCName "DN of deleted objects container" /subtree /filter:"(msDS-LastKnownRDN=<NAME>)" /deleted /atts:userprincipalname
repadmin /showattr DCName "CN=Deleted Objects,DC=blue,DC=contoso,DC=com" /subtree /filter:"(msDS-LastKnownRDN=Dianne Hunt2)" /deleted /atts:userprincipalname
C:\>repadmin /showattr winbluedc1 "cn=deleted objects,dc=blue,dc=contoso,dc=com" /subtree /filter:"(msds-lastknownrdn=Dianne Hunt2)" /deleted /atts:userprincipalname
DN: CN=Dianne Hunt2\0ADEL:dd3ab8a4-3005-4f2f-814f-d6fc54a1a1c0,CN=Deleted Object
s,DC=blue,DC=contoso,DC=com
1> userPrincipalName: dhunt@blue.contoso.com
Alle objecten met dezelfde UPN identificeren: met behulp van Repadmin.exe
repadmin /showattr WinBlueDC1 "DC=blue,DC=contoso,DC=com" /subtree /filter:"(userPrincipalName=dhunt@blue.contoso.com)" /deleted /atts:DN
C:\>repadmin /showattr winbluedc1 "dc=blue,dc=contoso,dc=com" /subtree /filter:"(userPrincipalName=dhunt@blue.contoso.com)" /deleted /atts:DN
DN: CN=Administrator,CN=Users,DC=blue,DC=contoso,DC=com
DN: CN=xouser1,CN=Users,DC=blue,DC=contoso,DC=com
DN: CN=xouser10,CN=Users,DC=blue,DC=contoso,DC=com
DN: CN=xouser100,CN=Users,DC=blue,DC=contoso,DC=com
DN: CN=Dianne Hunt,OU=Marketing,DC=blue,DC=contoso,DC=com
DN: CN=Dianne Hunt2\0ADEL:dd3ab8a4-3005-4f2f-814f-d6fc54a1a1c0,CN=Deleted Objects,DC=blue,DC=contoso,DC=com
Tip
The previously undocumented /deleted parameter in repadmin.exe is used to include deleted objects in the result set
Globale zoekopdracht gebruiken
Open Active Directory Administrative Center and navigate to Global Search
Selecteer het keuzerondje Converteren naar LDAP-
Type (userPrincipalName=ConflictingUPN)
- Replace ConflictingUPN with the actual UPN that is in conflict
Select Apply
Windows PowerShell gebruiken
Get-ADObject -LdapFilter "(userPrincipalName=dhunt@blue.contoso.com)" -IncludeDeletedObjects -SearchBase "DC=blue,DC=Contoso,DC=com" -SearchScope Subtree -Server winbluedc1.blue.contoso.com
Als het object moet worden hersteld, moet u de dubbele UPN's van de andere objecten verwijderen. Voor slechts één object is het eenvoudig genoeg om ADSIEdit te gebruiken om het duplicaat te verwijderen. Als er meerdere objecten met duplicaten zijn, is Windows PowerShell mogelijk het beste hulpmiddel om te gebruiken.
Als u het kenmerk UserPrincipalName wilt nullen met behulp van Windows PowerShell:
Note
Het kenmerk userPrincipalName is kenmerk met één waarde, dus met deze procedure wordt alleen de dubbele UPN verwijderd.
Duplicate SPN
Afbeelding SEQ Figure \* ARABIC 8 Foutbericht weergegeven in ADSIEdit wanneer het toevoegen van dubbele SPN wordt geblokkeerd
Logged in the Directory Services event log is an ActiveDirectory_DomainService event ID 2974.
Operation failed. Error code: 0x21c7
The operation failed
The attribute value provided is not unique in the forest or partition. Attribute:
servicePrincipalName Value=<SPN>
<Object DN> Winerror: 8467
Workflow
Als DC == GC
Er is geen offbox-aanroep vereist, query kan lokaal worden voldaan
UPN case
Query's uitvoeren op lokale UPN-index voor de gehele forest voor opgegeven UPN (userPrincipalName; een globale index)
Als invoer geretourneerd == 0 is, dan worden> schrijfbewerkingen voortgezet.
Als de geretourneerde waarden !=0 zijn, mislukt het schrijven naar>
Event logged
Retourneert ook een uitgebreide fout:
8648:
ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST
SPN case
Voer een query uit op de lokale SPN-index voor de gehele forest voor opgegeven SPN (servicePrincipalName; een globale index)
Als invoer geretourneerd == 0 is, dan worden> schrijfbewerkingen voortgezet.
Als de geretourneerde waarden !=0 zijn, mislukt het schrijven naar>
Event logged
Retourneert ook een uitgebreide fout:
8647:
ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST
Als DC != GC
Offbox call desirable but not critical, that is, this is a best-effort uniqueness check
Controle wordt alleen uitgevoerd op lokale DIT als GC niet kan worden gevonden
Gebeurtenis gelogd om dit aan te geven
UPN case
LDAP-query indienen bij de dichtstbijzijnde GC? Vraag de bosbrede UPN-index van de GC op voor de opgegeven UPN (userPrincipalName; een globale index).
Als invoer geretourneerd == 0 is, dan worden> schrijfbewerkingen voortgezet.
Als de geretourneerde waarden !=0 zijn, mislukt het schrijven naar>
Event logged
Retourneert ook een uitgebreide fout:
8648:
ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST
SPN case
LDAP-query indienen bij de dichtstbijzijnde GC? vraag de bosbrede SPN-index van de GC op voor de opgegeven SPN (servicePrincipalName; een globale index)
Als invoer geretourneerd == 0 is, dan worden> schrijfbewerkingen voortgezet.
Als de geretourneerde waarden !=0 zijn, mislukt het schrijven naar>
Event logged
Retourneert ook een uitgebreide fout:
8647:
ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST
Wanneer verwijderde objecten opnieuw worden gereanimeerd, worden SPN- of UPN-waarden gecontroleerd op uniekheid. Als er een duplicaat wordt gevonden, mislukt de aanvraag.
Voor bepaalde kenmerkwijzigingen, zoals DNS-hostnaam, SAM-accountnaam, enzovoort, worden SPN's dienovereenkomstig bijgewerkt wanneer de wijziging wordt aangebracht. In het proces worden de verouderde SPN's verwijderd en worden nieuwe SPN's samengesteld en toegevoegd aan de database. De vereiste kenmerkwijzigingen waarmee dit pad wordt geactiveerd, zijn:
ATT_DNS_HOST_NAME
ATT_MS_DS_ADDITIONAL_DNS_HOST_NAME
ATT_SAM_ACCOUNT_NAME
ATT_MS_DS_ADDITIONAL_SAM_ACCOUNT_NAME
ATT_SERVER_REFERENCE_BL
ATT_USER_ACCOUNT_CONTROL
Als een van de nieuwe SPN-waarden een duplicaat is, mislukken we de wijziging. In de bovenstaande lijst zijn de belangrijke kenmerken ATT_DNS_HOST_NAME (Computernaam) en ATT_SAM_ACCOUNT_NAME (SAM-accountnaam).
Probeer dit: SPN- en UPN-uniekheid verkennen
This is the first of several "Try This" activities in the module. Er is geen afzonderlijke labhandleiding voor deze module. The Try This activities are free-form activities that allow you explore the lesson material in the lab environment. U hebt de mogelijkheid om de prompt te volgen of het script af te gaan en uw eigen activiteit te bedenken.
Note
- This is the first of several "Try This" activities.
- Er is geen afzonderlijke labhandleiding voor deze module.
- The Try This activities are essentially free-form activities that allow you explore the lesson material in the lab environment.
- U hebt de mogelijkheid om de prompt te volgen of het script af te gaan en uw eigen activiteit te bedenken.
- While not all sections have a Try This prompt, you are still encouraged to explore the lesson content in the lab where appropriate.
Experimenteer met SPN- en UPN-uniekheid. Volg deze aanwijzingen of voltooi uw eigen aanwijzingen.
Nieuwe gebruikers maken met UPN
Accounts maken met SPN's
Maak een nieuwe gebruiker met een UPN die al eerder is gedefinieerd of wijzig de UPN van een bestaand account. Doe hetzelfde voor een SPN op een ander account
Een bestaand gebruikersaccount vullen met een UPN die al in gebruik is
- PowerShell, ADSIEDIT of Active Directory-beheercentrum (DSAC.exe) gebruiken
Een bestaand account vullen met een SPN die al wordt gebruikt
- Gebruik Windows PowerShell, ADSIEDIT of SetSPN
Bekijk de fouten
Optionally
Controleer bij de docent van het leslokaal of het goed is om de AD-Prullenbak in te schakelen in het Active Directory-beheercentrum. Zo ja, ga dan verder met de volgende stap.
Vul de UPN in op een gebruikersaccount
Het account verwijderen
Een ander account vullen met dezelfde UPN als het verwijderde account
Probeer de GUI van de Prullenbak te gebruiken om het account te herstellen
Stel dat u de fout te zien krijgt die u in de vorige stap ziet. (en heb geen geschiedenis van de stappen die u zojuist hebt uitgevoerd) Het doel is om het herstellen van het account te voltooien. Zie de werkmap, bijvoorbeeld stappen.