Informazioni sulla scomparsa di Microsoft Entra Connect 1.4.xx.x e del dispositivo
Con l'implementazione della versione 1.4.xx.x di Microsoft Entra Connect, i clienti potrebbero vedere alcuni o tutti i loro dispositivi Windows scomparire da Microsoft Entra ID. Questa non è una causa di preoccupazione, poiché queste identità del dispositivo non vengono usate da Microsoft Entra ID durante l'autorizzazione di accesso condizionale. Questa modifica non eliminerà i dispositivi Windows registrati correttamente con l'ID Microsoft Entra per l'aggiunta ibrida a Microsoft Entra.
Se viene visualizzata l'eliminazione di oggetti dispositivo in Microsoft Entra ID che supera la soglia di eliminazione dell'esportazione, consentire l'esecuzione delle eliminazioni. Procedura: consentire il flusso delle eliminazioni quando superano la soglia di eliminazione
Background
I dispositivi Windows registrati come join ibrido di Microsoft Entra sono rappresentati in Microsoft Entra ID come oggetti dispositivo e possono essere usati per l'accesso condizionale. I dispositivi Windows 10 vengono sincronizzati con il cloud tramite Microsoft Entra Connect, mentre i dispositivi Windows di livello inferiore vengono registrati direttamente usando Active Directory Federation Services (AD FS) o l'accesso Single Sign-On facile.
Dispositivi Windows 10
Solo i dispositivi Windows 10 con un valore di attributo userCertificate specifico configurato dall'aggiunta ibrida Microsoft Entra devono essere sincronizzati con il cloud da Microsoft Entra Connect. Nelle versioni precedenti di Microsoft Entra Connect, questo requisito non è stato applicato rigorosamente e gli oggetti dispositivo non necessari sono stati aggiunti a Microsoft Entra ID. Tali dispositivi in Microsoft Entra ID rimangono sempre nello stato "in sospeso", in quanto questi dispositivi non erano destinati a essere registrati con Microsoft Entra ID.
Questa versione di Microsoft Entra Connect sincronizza solo i dispositivi Windows 10 configurati correttamente per essere aggiunti a Microsoft Entra ibrido. Gli oggetti dispositivo Windows 10 senza l'utente specifico di Microsoft EntraCertificate verranno rimossi dall'ID Microsoft Entra.
Dispositivi Windows di livello inferiore
Microsoft Entra Connect non deve mai sincronizzare i dispositivi Windows di livello inferiore. Tutti i dispositivi in Microsoft Entra ID sincronizzati in precedenza verranno eliminati in modo non corretto dall'ID Microsoft Entra. Se Microsoft Entra Connect tenta di eliminare i dispositivi Windows di livello inferiore, il dispositivo non è quello creato da Microsoft Workplace Join per computer non Windows 10 e non può essere utilizzato da altre funzionalità di Microsoft Entra.
Alcuni clienti potrebbero dover rivedere procedura: pianificare l'implementazione dell'aggiunta ibrida a Microsoft Entra per registrare correttamente i dispositivi Windows e assicurarsi che tali dispositivi possano partecipare all'accesso condizionale basato su dispositivo.
Come è possibile verificare quali dispositivi vengono eliminati con questo aggiornamento?
Per verificare quali dispositivi vengono eliminati, usare lo script di PowerShell nello script di report del certificato di PowerShell.
Questo script genera un report sui certificati archiviati negli oggetti computer di Active Directory e in particolare sui certificati rilasciati dalla funzionalità di join ibrido di Microsoft Entra.
Lo script controlla anche i certificati presenti nella proprietà UserCertificate di un oggetto Computer in AD. Per ogni certificato non scaduto presente, lo script convalida se il certificato è stato emesso per la funzionalità di aggiunta ibrida di Microsoft Entra; ad esempio . Subject Name matches CN={ObjectGUID}
Prima di questo aggiornamento, Microsoft Entra Connect si sincronizzava con Microsoft Entra qualsiasi computer che conteneva almeno un certificato valido. A partire da Microsoft Entra Connect versione 1.4, il motore di sincronizzazione identifica i certificati di join ibridi di Microsoft Entra e userà il filtro cloudfilter per impedire che l'oggetto computer si sincronizzi con Microsoft Entra ID a meno che non sia presente un certificato di join ibrido Microsoft Entra valido.
I dispositivi Microsoft Entra sincronizzati in precedenza con AD, ma non hanno un certificato di aggiunta ibrido Microsoft Entra valido, verranno eliminati dal motore di sincronizzazione usando il filtro CloudFiltered=TRUE
.
Script di report del certificato di 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)"
}
Operazioni successive
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.