Compartir a través de


Descripción de Microsoft Entra Connect 1.4.xx.x y la desaparición de dispositivos

Con la implementación de la versión 1.4.xx.x de Microsoft Entra Connect, los clientes pueden ver que algunos o todos sus dispositivos Windows desaparecen del identificador de Microsoft Entra. Esto no es una causa de preocupación, ya que microsoft Entra ID no usa estas identidades de dispositivo durante la autorización de acceso condicional. Este cambio no eliminará ningún dispositivo Windows que se haya registrado correctamente con el identificador de Entra de Microsoft para la unión híbrida de Microsoft Entra.

Si ve la eliminación de objetos de dispositivo en microsoft Entra ID que supera el umbral de eliminación de exportación, permita que las eliminaciones pasen. How To: allow deletes to flow when they exceed the deletion threshold (Instrucciones: Permitir que fluyan las eliminaciones una vez que superan el umbral de eliminación)

Fondo

Los dispositivos Windows registrados como unidos híbridos a Microsoft Entra se representan en el identificador de Microsoft Entra como objetos de dispositivo y se pueden usar para el acceso condicional. Los dispositivos Windows 10 se sincronizan con la nube a través de Microsoft Entra Connect, mientras que los dispositivos Windows de nivel inferior se registran directamente mediante Servicios de federación de Active Directory (AD FS) (AD FS) o el inicio de sesión único sin problemas.

Dispositivos de Windows 10

Solo los dispositivos Windows 10 con un valor de atributo userCertificate específico configurado por la unión híbrida de Microsoft Entra deben sincronizarse con la nube mediante Microsoft Entra Connect. En versiones anteriores de Microsoft Entra Connect, este requisito no se aplicaba rigurosamente y los objetos de dispositivo innecesarios se agregaron al identificador de Microsoft Entra. Estos dispositivos en el id. de Entra de Microsoft siempre permanecen en el estado "pendiente", ya que estos dispositivos no estaban diseñados para registrarse con el identificador de Microsoft Entra.

Esta versión de Microsoft Entra Connect solo sincronizará los dispositivos Windows 10 que están configurados correctamente para que se unan a Microsoft Entra hybrid. Los objetos de dispositivo windows 10 sin la combinación de Microsoft Entra específica userCertificate se quitarán del identificador de Microsoft Entra.

Dispositivos Windows de nivel inferior

Microsoft Entra Connect nunca debe sincronizar dispositivos Windows de nivel inferior. Los dispositivos de Microsoft Entra ID sincronizados previamente se eliminarán incorrectamente del identificador de Microsoft Entra. Si Microsoft Entra Connect intenta eliminar dispositivos Windows de nivel inferior, el dispositivo no es el creado por Microsoft Workplace Join para equipos que no son windows 10 MSI y no puede ser consumido por ninguna otra característica de Microsoft Entra.

Es posible que algunos clientes necesiten volver a consultar cómo: Planear la implementación de la unión híbrida de Microsoft Entra para registrar sus dispositivos Windows correctamente y asegurarse de que esos dispositivos pueden participar en el acceso condicional basado en dispositivos.

¿Cómo puedo comprobar los dispositivos que se eliminan con esta actualización?

Para comprobar qué dispositivos se eliminan, use el script de PowerShell en el script de informe de certificado de PowerShell.

Este script genera un informe sobre los certificados almacenados en objetos de equipo de Active Directory y, específicamente, los certificados emitidos por la característica de unión híbrida de Microsoft Entra.

El script también comprueba los certificados presentes en la propiedad UserCertificate de un objeto Computer en AD. Para cada certificado no expirado presente, el script valida si el certificado se emitió para la característica de unión híbrida de Microsoft Entra; por ejemplo, Subject Name matches CN={ObjectGUID}.

Antes de esta actualización, Microsoft Entra Connect se sincronizaría con Microsoft Entra cualquier equipo que contenga al menos un certificado válido. A partir de la versión 1.4 de Microsoft Entra Connect, el motor de sincronización identifica los certificados de unión híbrida de Microsoft Entra y usará el filtro cloudfilter para evitar que el objeto del equipo se sincronice con el identificador de Microsoft Entra a menos que haya un certificado de unión híbrida de Microsoft Entra válido.

Los dispositivos microsoft Entra que se sincronizaron previamente con AD, pero que no tienen un certificado de unión híbrida de Microsoft Entra válido, se eliminarán mediante el motor de sincronización mediante el filtro CloudFiltered=TRUE.

Script de informe de certificado de 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)"
   }

Pasos siguientes

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.