Grundlegendes zu Microsoft Entra Connect 1.4.xx.x und Verschwinden des Geräts
Mit der Implementierung von Version 1.4.xx.x von Microsoft Entra Connect werden Kunden möglicherweise einige oder alle ihre Windows-Geräte von Microsoft Entra ID verschwinden. Dies ist keine Ursache für Die Sorge, da diese Geräteidentitäten während der Autorisierung für bedingten Zugriff nicht von Microsoft Entra-ID verwendet werden. Diese Änderung löscht keine Windows-Geräte, die ordnungsgemäß mit der Microsoft Entra-ID für die Hybrid-Verknüpfung von Microsoft Entra registriert wurden.
Wenn das Löschen von Geräteobjekten in der Microsoft Entra-ID den Exportlöschschwellenwert überschreitet, lassen Sie die Löschungen zu. Anleitung: Zulassen von Löschvorgängen bei Überschreiten des Schwellenwerts für Löschungen
Hintergrund
Windows-Geräte, die als Hybridverknüpfung von Microsoft Entra registriert sind, werden in Microsoft Entra ID als Geräteobjekte dargestellt und können für bedingten Zugriff verwendet werden. Windows 10-Geräte werden über Microsoft Entra Connect mit der Cloud synchronisiert, während Windows-Geräte auf der Unterebene direkt mithilfe von Active Directory-Verbunddienste (AD FS) (AD FS) oder nahtlosen einmaligen Anmelden registriert werden.
Windows 10-Geräte
Nur Windows 10-Geräte mit einem bestimmten userCertificate-Attributwert , der von Microsoft Entra Hybrid Join konfiguriert wird, sollten von Microsoft Entra Connect mit der Cloud synchronisiert werden. In früheren Versionen von Microsoft Entra Connect wurde diese Anforderung nicht streng erzwungen, und unnötige Geräteobjekte wurden zu Microsoft Entra ID hinzugefügt. Solche Geräte in Der Microsoft Entra-ID bleiben immer im Status "Ausstehend", da diese Geräte nicht für die Registrierung mit der Microsoft Entra-ID vorgesehen waren.
Diese Version von Microsoft Entra Connect synchronisiert nur Windows 10-Geräte, die ordnungsgemäß für die Microsoft Entra-Hybridverbindung konfiguriert sind. Windows 10-Geräteobjekte ohne microsoft Entra join specific userCertificate werden aus der Microsoft Entra-ID entfernt.
Kompatible Windows-Geräte
Microsoft Entra Connect sollte niemals Windows-Geräte auf unterer Ebene synchronisieren. Alle Geräte in der zuvor synchronisierten Microsoft Entra-ID werden aus der Microsoft Entra-ID gelöscht. Wenn Microsoft Entra Connect versucht, Windows-Geräte auf der Unterebene zu löschen, ist das Gerät nicht das Gerät, das von der Microsoft Workplace Join für Nicht-Windows 10-Computer-MSI erstellt wurde, und es kann nicht von einem anderen Microsoft Entra-Feature genutzt werden.
Einige Kunden müssen möglicherweise " How To: Plan your Microsoft Entra hybrid join implementation" (Planen der Implementierung der Hybridverknüpfung von Microsoft Entra), um ihre Windows-Geräte ordnungsgemäß zu registrieren und sicherzustellen, dass diese Geräte an gerätebasiertem bedingtem Zugriff teilnehmen können.
Wie kann ich überprüfen, welche Geräte mit diesem Update gelöscht werden?
Um zu überprüfen, welche Geräte gelöscht werden, verwenden Sie das PowerShell-Skript im PowerShell-Zertifikatberichtsskript.
Dieses Skript generiert einen Bericht über Zertifikate, die in Active Directory-Computerobjekten gespeichert sind, und insbesondere Zertifikate, die vom Microsoft Entra-Hybridbeitrittsfeature ausgestellt wurden.
Das Skript überprüft auch die Zertifikate, die in der UserCertificate-Eigenschaft eines Computer-Objekts in AD vorhanden sind. Für jedes nicht abgelaufene Zertifikat, das vorhanden ist, überprüft das Skript, ob das Zertifikat für das Hybridbeitrittsfeature von Microsoft Entra ausgestellt wurde. beispiel: Subject Name matches CN={ObjectGUID}
.
Vor diesem Update würde Microsoft Entra Connect mit Microsoft Entra alle Computer synchronisieren, die mindestens ein gültiges Zertifikat enthielten. Ab Microsoft Entra Connect, Version 1.4, identifiziert das Synchronisierungsmodul Microsoft Entra-Hybridbeitrittszertifikate und verwendet den Cloudfilterfilter , um zu verhindern, dass das Computerobjekt mit der Microsoft Entra-ID synchronisiert wird, es sei denn, es gibt ein gültiges Microsoft Entra-Hybridbeitrittszertifikat.
Microsoft Entra-Geräte, die zuvor mit AD synchronisiert wurden, aber kein gültiges Microsoft Entra-Hybridbeitrittszertifikat besitzen, werden mithilfe des Filters CloudFiltered=TRUE
vom Synchronisierungsmodul gelöscht.
PowerShell-Zertifikatberichtsskript
<#
Filename: Export-ADSyncToolsHybridAzureADjoinCertificateReport.ps1.
DISCLAIMER:
Copyright (c) Microsoft Corporation. All rights reserved. This script is made available to you without any express, implied or statutory warranty, not even the implied warranty of merchantability or fitness for a particular purpose, or the warranty of title or non-infringement. The entire risk of the use or the results from the use of this script remains with you.
.Synopsis
This script generates a report about certificates stored in Active Directory Computer objects, specifically,
certificates issued by the Microsoft Entra hybrid join feature.
.DESCRIPTION
It checks the certificates present in the UserCertificate property of a Computer object in AD and, for each
non-expired certificate present, validates if the certificate was issued for the Microsoft Entra hybrid join feature
(i.e. Subject Name matches CN={ObjectGUID}).
Before, Microsoft Entra Connect would synchronize to Microsoft Entra ID any Computer that contained at least one valid
certificate but starting on Microsoft Entra Connect version 1.4, the sync engine can identify Hybrid
Microsoft Entra join certificates and will 'cloudfilter' the computer object from synchronizing to Microsoft Entra ID unless
there's a valid Microsoft Entra hybrid join certificate.
Microsoft Entra Device objects that were already synchronized to AD but do not have a valid Microsoft Entra hybrid join
certificate will be deleted (CloudFiltered=TRUE) by the sync engine.
.EXAMPLE
.\Export-ADSyncToolsHybridAzureADjoinCertificateReport.ps1 -DN 'CN=Computer1,OU=SYNC,DC=Fabrikam,DC=com'
.EXAMPLE
.\Export-ADSyncToolsHybridAzureADjoinCertificateReport.ps1 -OU 'OU=SYNC,DC=Fabrikam,DC=com' -Filename "MyHybridAzureADjoinReport.csv" -Verbose
#>
[CmdletBinding()]
Param
(
# Computer DistinguishedName
[Parameter(ParameterSetName='SingleObject',
Mandatory=$true,
ValueFromPipelineByPropertyName=$true,
Position=0)]
[String]
$DN,
# AD OrganizationalUnit
[Parameter(ParameterSetName='MultipleObjects',
Mandatory=$true,
ValueFromPipelineByPropertyName=$true,
Position=0)]
[String]
$OU,
# Output CSV filename (optional)
[Parameter(Mandatory=$false,
ValueFromPipelineByPropertyName=$false,
Position=1)]
[String]
$Filename
)
# Generate Output filename if not provided
If ($Filename -eq "")
{
$Filename = [string] "$([string] $(Get-Date -Format yyyyMMddHHmmss))_ADSyncAADHybridJoinCertificateReport.csv"
}
Write-Verbose "Output filename: '$Filename'"
# Read AD object(s)
If ($PSCmdlet.ParameterSetName -eq 'SingleObject')
{
$directoryObjs = @(Get-ADObject $DN -Properties UserCertificate)
Write-Verbose "Starting report for a single object '$DN'"
}
Else
{
$directoryObjs = Get-ADObject -Filter { ObjectClass -like 'computer' } -SearchBase $OU -Properties UserCertificate
Write-Verbose "Starting report for $($directoryObjs.Count) computer objects in OU '$OU'"
}
Write-Host "Processing $($directoryObjs.Count) directory object(s). Please wait..."
# Check Certificates on each AD Object
$results = @()
ForEach ($obj in $directoryObjs)
{
# Read UserCertificate multi-value property
$objDN = [string] $obj.DistinguishedName
$objectGuid = [string] ($obj.ObjectGUID).Guid
$userCertificateList = @($obj.UserCertificate)
$validEntries = @()
$totalEntriesCount = $userCertificateList.Count
Write-verbose "'$objDN' ObjectGUID: $objectGuid"
Write-verbose "'$objDN' has $totalEntriesCount entries in UserCertificate property."
If ($totalEntriesCount -eq 0)
{
Write-verbose "'$objDN' has no Certificates - Skipped."
Continue
}
# Check each UserCertificate entry and build array of valid certs
ForEach($entry in $userCertificateList)
{
Try
{
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate2] $entry
}
Catch
{
Write-verbose "'$objDN' has an invalid Certificate!"
Continue
}
Write-verbose "'$objDN' has a Certificate with Subject: $($cert.Subject); Thumbprint:$($cert.Thumbprint)."
$validEntries += $cert
}
$validEntriesCount = $validEntries.Count
Write-verbose "'$objDN' has a total of $validEntriesCount certificates (shown above)."
# Get non-expired Certs (Valid Certificates)
$validCerts = @($validEntries | Where-Object {$_.NotAfter -ge (Get-Date)})
$validCertsCount = $validCerts.Count
Write-verbose "'$objDN' has $validCertsCount valid certificates (not-expired)."
# Check for Microsoft Entra hybrid join Certificates
$hybridJoinCerts = @()
$hybridJoinCertsThumbprints = [string] "|"
ForEach ($cert in $validCerts)
{
$certSubjectName = $cert.Subject
If ($certSubjectName.StartsWith($("CN=$objectGuid")) -or $certSubjectName.StartsWith($("CN={$objectGuid}")))
{
$hybridJoinCerts += $cert
$hybridJoinCertsThumbprints += [string] $($cert.Thumbprint) + '|'
}
}
$hybridJoinCertsCount = $hybridJoinCerts.Count
if ($hybridJoinCertsCount -gt 0)
{
$cloudFiltered = 'FALSE'
Write-verbose "'$objDN' has $hybridJoinCertsCount Microsoft Entra hybrid join Certificates with Thumbprints: $hybridJoinCertsThumbprints (cloudFiltered=FALSE)"
}
Else
{
$cloudFiltered = 'TRUE'
Write-verbose "'$objDN' has no Microsoft Entra hybrid join Certificates (cloudFiltered=TRUE)."
}
# Save results
$r = "" | Select ObjectDN, ObjectGUID, TotalEntriesCount, CertsCount, ValidCertsCount, HybridJoinCertsCount, CloudFiltered
$r.ObjectDN = $objDN
$r.ObjectGUID = $objectGuid
$r.TotalEntriesCount = $totalEntriesCount
$r.CertsCount = $validEntriesCount
$r.ValidCertsCount = $validCertsCount
$r.HybridJoinCertsCount = $hybridJoinCertsCount
$r.CloudFiltered = $cloudFiltered
$results += $r
}
# Export results to CSV
Try
{
$results | Export-Csv $Filename -NoTypeInformation -Delimiter ';'
Write-Host "Exported Hybrid Microsoft Entra Domain Join Certificate Report to '$Filename'.`n"
}
Catch
{
Throw "There was an error saving the file '$Filename': $($_.Exception.Message)"
}
Nächste Schritte
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.