Общие сведения об исчезновении устройств Microsoft Entra Connect 1.4.xx.x и об исчезновении устройств
При реализации microsoft Entra Connect версии 1.4.xx.x клиенты могут увидеть, что некоторые или все их устройства Windows исчезают с идентификатора Microsoft Entra. Это не причина для беспокойства, так как эти удостоверения устройств не используются идентификатором Microsoft Entra во время авторизации условного доступа . Это изменение не приведет к удалению устройств Windows, которые были правильно зарегистрированы с идентификатором Microsoft Entra для гибридного соединения Microsoft Entra.
Если вы видите удаление объектов устройств в идентификаторе Microsoft Entra, превышающем пороговое значение экспорта, разрешите удаление. Как разрешить удаление, если количество удаляемых объектов превышает пороговое значение удаления
Общие сведения
Устройства Windows, зарегистрированные как гибридное присоединение к Microsoft Entra, представлены в идентификаторе Microsoft Entra в качестве объектов устройств, и их можно использовать для условного доступа. Устройства Windows 10 синхронизируются с облаком через Microsoft Entra Connect, а устройства Windows нижнего уровня регистрируются непосредственно с помощью службы федерации Active Directory (AD FS) (AD FS) или простого единого входа.
Устройства Windows 10:
Только устройства Windows 10 с определенным значением атрибута userCertificate , настроенным гибридным соединением Microsoft Entra, должны быть синхронизированы с облаком Microsoft Entra Connect. В предыдущих версиях Microsoft Entra Connect это требование не было строго применено, и ненужные объекты устройств были добавлены в идентификатор Microsoft Entra ID. Такие устройства в идентификаторе Microsoft Entra всегда оставались в состоянии ожидания, так как эти устройства не были зарегистрированы с идентификатором Microsoft Entra.
Эта версия Microsoft Entra Connect синхронизирует только устройства Windows 10, которые правильно настроены для гибридного соединения Microsoft Entra. Объекты устройств Windows 10 без соединения Microsoft Entra с определенным пользователемCertificate будут удалены из идентификатора Microsoft Entra.
Устройства Windows нижнего уровня
Microsoft Entra Connect никогда не должен синхронизировать устройства Windows нижнего уровня. Все устройства, ранее синхронизированные с идентификатором Microsoft Entra ID, будут удалены из идентификатора Microsoft Entra. Если Microsoft Entra Connect пытается удалить устройства Windows нижнего уровня, устройство не является тем, который был создан Microsoft Workplace Join для компьютеров, отличных от Windows 10 MSI, и он не может использоваться любой другой функцией Microsoft Entra.
Некоторым клиентам может потребоваться пересмотреть инструкции. Запланируйте реализацию гибридного соединения Microsoft Entra для правильной регистрации устройств Windows и убедитесь, что эти устройства могут участвовать в условном доступе на основе устройств.
Как проверить, какие устройства удаляются этим обновлением?
Чтобы проверить, какие устройства удалены, используйте сценарий PowerShell в скрипте отчета о сертификате PowerShell.
Этот скрипт создает отчет о сертификатах, хранящихся в объектах компьютера Active Directory, и в частности сертификатов, выданных функцией гибридного соединения Microsoft Entra.
Скрипт также проверяет сертификаты, присутствующие в свойстве UserCertificate объекта Computer в AD. Для каждого сертификата, не истекшего срок действия, скрипт проверяет, был ли сертификат выдан для функции гибридного соединения Microsoft Entra; например, Subject Name matches CN={ObjectGUID}
.
Перед этим обновлением Microsoft Entra Connect синхронизируется с Microsoft Entra любой компьютер, содержащий по крайней мере один допустимый сертификат. Начиная с Microsoft Entra Connect версии 1.4 подсистема синхронизации определяет сертификаты гибридного соединения Microsoft Entra и будет использовать фильтр cloudfilter , чтобы предотвратить синхронизацию объекта компьютера с идентификатором Microsoft Entra, если только не существует действительный сертификат гибридного соединения Microsoft Entra.
Устройства Microsoft Entra, которые ранее синхронизированы с AD, но не имеют допустимого сертификата гибридного соединения Microsoft Entra, будут удалены подсистемой синхронизации с помощью фильтра CloudFiltered=TRUE
.
Скрипт отчета о сертификате PowerShell
<#
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)"
}
Next Steps
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.