Get-EntraBetaAuditSignInLog
Ottenere i log di controllo degli accessi.
Sintassi
Default (Impostazione predefinita)
Get-EntraBetaAuditSignInLog
[-All]
[-Top <Int32>]
[-Filter <String>]
[-Property <String[]>]
[<CommonParameters>]
Descrizione
Il Get-EntraBetaAuditSignInLog cmdlet ottiene il Microsoft Entra ID log di accesso.
Oltre alle autorizzazioni delegate, l'utente connesso deve appartenere ad almeno uno dei ruoli Microsoft Entra seguenti per leggere i report di accesso:
- Lettore globale
- Lettore di report
- Amministratore della sicurezza
- Operatore per la sicurezza
- Lettore di Sicurezza
Esempio
Esempio 1: Ottenere tutti i log
Connect-Entra -Scopes 'AuditLog.Read.All','Directory.Read.All'
Get-EntraBetaAuditSignInLog -All
Id AppDisplayName AppId AppTokenProtectionStatus AuthenticationMethodsUsed AuthenticationProtocol
-- -------------- ----- ------------------------ ------------------------- ----------------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb Azure Active Directory PowerShell 00001111-aaaa-2222-bbbb-3333cccc4444 {} none
bbbbbbbb-1111-2222-3333-cccccccccccc Azure Portal 11112222-bbbb-3333-cccc-4444dddd5555 {} none
cccccccc-2222-3333-4444-dddddddddddd Azure Active Directory PowerShell 22223333-cccc-4444-dddd-5555eeee6666 {} none
dddddddd-3333-4444-5555-eeeeeeeeeeee Azure Active Directory PowerShell 33334444-dddd-5555-eeee-6666ffff7777 {} none
In questo esempio vengono restituiti tutti i log di controllo degli accessi.
Esempio 2: Elencare gli accessi con errori nei criteri di accesso condizionale
Connect-Entra -Scopes 'AuditLog.Read.All','Directory.Read.All'
Get-EntraBetaAuditSignInLog -Filter "conditionalAccessStatus eq 'failure'" -Limit 10 | Select-Object id, userDisplayName, createdDateTime, appDisplayName, status
id : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
userDisplayName : Saywer Miller
createdDateTime : 03/08/2025 04:03:14
appDisplayName : Microsoft Edge
status : @{errorCode=50158; failureReason=External security challenge not satisfied. User will be redirected to another page or authentication provider to satisfy additional authentication challenges.; additionalDetails=The user is required to satisfy additional require
ments before finishing authentication, and was redirected to another page (such as terms of use or a third party MFA provider). This code alone does not indicate a failure on your users part to sign in. The sign in logs may indicate that this challenge was succ
esfully passed or failed.}
In questo esempio vengono restituiti tutti i log di controllo degli accessi che hanno esito negativo nei criteri di accesso condizionale.
Esempio 3: Elencare gli accessi da dispositivi non conformi
Connect-Entra -Scopes 'AuditLog.Read.All','Directory.Read.All'
Get-EntraBetaAuditSignInLog -Filter "deviceDetail/isCompliant eq false" -Top 1 | Select-Object id, userDisplayName, appDisplayName, clientAppUsed, conditionalAccessStatus, deviceDetail, status
id : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
userDisplayName : Sawyer Miller
appDisplayName : Security Copilot
clientAppUsed : Browser
conditionalAccessStatus : success
deviceDetail : @{operatingSystem=Windows10; trustType=Azure AD registered; 22223333-cccc-4444-dddd-5555eeee6666; isCompliant=False; isManaged=False; browser=Edge 133.0.0; displayName=devbox}
status : @{errorCode=50011; failureReason=The {redirectTerm} '{replyAddress}' specified in the request does not match the {redirectTerm}s configured for the application '{identifier}'. Make sure the {redirectTerm} sent in the request matches one added to your ap
plication in the Azure portal. Navigate to {akamsLink} to learn more about how to fix this. {detail}; additionalDetails=Developer error - the app is attempting to sign in without the necessary or correct authentication parameters.}
Questo esempio restituisce tutti i log di controllo degli accessi da dispositivi non conformi.
Esempio 4: Elencare gli errori di accesso a causa di criteri di accesso condizionale specifici
Connect-Entra -Scopes 'AuditLog.Read.All','Directory.Read.All'
$policyId = "dcf66a39-965f-4958-871f-f62613b6cabd"
Get-EntraBetaAuditSignInLog -Filter "
conditionalAccessStatus eq 'failure'
and appliedConditionalAccessPolicies/any(c:c/id eq '$policyId' and c/result eq 'failure')" -Limit 1 |
Select-Object id, userDisplayName, appDisplayName, clientAppUsed,
conditionalAccessStatus, status, appliedConditionalAccessPolicies
id : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
userDisplayName : ASawyer Miller
appDisplayName : Azure Portal
clientAppUsed : Browser
conditionalAccessStatus : failure
status : @{errorCode=50158; failureReason=External security challenge not satisfied. User will be redirected to another page or authentication provider to satisfy additional authentication challenges.; additionalDetails=The user is required to satisfy a
dditional requirements before finishing authentication, and was redirected to another page (such as terms of use or a third party MFA provider). This code alone does not indicate a failure on your users part to sign in. The sign in logs may ind
icate that this challenge was succesfully passed or failed.}
appliedConditionalAccessPolicies : {@{id=22223333-cccc-4444-dddd-5555eeee6666; enforcedSessionControls=System.Object[]; displayName=CAX - All Contoso (and Guest) Users; result=failure; enforcedGrantControls=System.Object[]}, @{id=00001111-aaaa-2222-bbbb-3333cccc4444; enf
orcedSessionControls=System.Object[]; displayName=CA01 - MFA - All Apps - All Users; result=success; enforcedGrantControls=System.Object[]}, @{id=22223333-cccc-4444-dddd-5555eeee6666; enforcedSessionControl
s=System.Object[]; displayName=CA001 - Require Passwordless Auth and TAP - All Users; result=success; enforcedGrantControls=System.Object[]}, @{id=33334444-dddd-5555-eeee-6666ffff7777; enforcedSessionControls=System.Object[]; displayName=CA14 -
Require MFA for VPN Access; result=notApplied; enforcedGrantControls=System.Object[]}…}
In questo esempio vengono restituiti tutti i log di controllo degli errori di accesso a causa di criteri di accesso condizionale specifici.
Esempio 5: Elencare gli accessi a rischio
Connect-Entra -Scopes 'AuditLog.Read.All','Directory.Read.All'
Get-EntraBetaAuditSignInLog -Filter "
(riskLevelDuringSignIn ne 'none' or
riskEventTypes_v2/any(r:r ne 'none'))
" -Limit 1 |
Select-Object id, userDisplayName, appDisplayName, clientAppUsed,
riskLevelDuringSignIn, riskEventTypes_v2
id : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
userDisplayName : Sawyer Miller
appDisplayName : Security Copilot
clientAppUsed : Browser
riskLevelDuringSignIn : low
riskEventTypes_v2 : {unfamiliarFeatures}
In questo esempio vengono restituiti tutti i log di controllo degli accessi a rischio.
Esempio 6: Ottenere gli accessi senza MFA
Connect-Entra -Scopes 'AuditLog.Read.All','Directory.Read.All'
Get-EntraBetaAuditSignInLog -Filter "authenticationRequirement ne 'multiFactorAuthentication' and isInteractive eq true"
Id AppDisplayName AppId AppTokenProtectionStatus AuthenticationMethodsUsed AuthenticationProtocol
-- -------------- ----- ------------------------ ------------------------- ----------------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb Azure Active Directory PowerShell 00001111-aaaa-2222-bbbb-3333cccc4444 {} none
bbbbbbbb-1111-2222-3333-cccccccccccc Azure Portal 11112222-bbbb-3333-cccc-4444dddd5555 {} none
cccccccc-2222-3333-4444-dddddddddddd Azure Active Directory PowerShell 22223333-cccc-4444-dddd-5555eeee6666 {} none
dddddddd-3333-4444-5555-eeeeeeeeeeee Azure Active Directory PowerShell 33334444-dddd-5555-eeee-6666ffff7777 {} none
Questo esempio restituisce tutti i log di controllo degli accessi senza MFA.
Esempio 7: Ottenere i primi due log
Connect-Entra -Scopes 'AuditLog.Read.All','Directory.Read.All'
Get-EntraBetaAuditSignInLog -Top 2
Id AppDisplayName AppId AppTokenProtectionStatus AuthenticationMethodsUsed AuthenticationProtocol
-- -------------- ----- ------------------------ ------------------------- ----------------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb Azure Active Directory PowerShell 00001111-aaaa-2222-bbbb-3333cccc4444 {} none
bbbbbbbb-1111-2222-3333-cccccccccccc Azure Portal 11112222-bbbb-3333-cccc-4444dddd5555 {} none
In questo esempio vengono restituiti i primi due log di controllo degli accessi. È possibile usare -Limit come alias per -Top.
Esempio 8: Ottenere i log di controllo contenenti un determinato AppDisplayName
Connect-Entra -Scopes 'AuditLog.Read.All','Directory.Read.All'
Get-EntraBetaAuditSignInLog -Filter "AppDisplayName eq 'Graph Explorer'" -Top 1
Id AppDisplayName AppId AppTokenProtectionStatus AuthenticationMethodsUsed AuthenticationProtocol
-- -------------- ----- ------------------------ ------------------------- ----------------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb Graph Explorer PowerShell 00001111-aaaa-2222-bbbb-3333cccc4444
Questo esempio illustra come recuperare i log di accesso da AppDisplayName. È possibile usare -Limit come alias per -Top.
Esempio 9: Ottenere tutti i log di accesso tra le date
Connect-Entra -Scopes 'AuditLog.Read.All','Directory.Read.All'
Get-EntraBetaAuditSignInLog -Filter "createdDateTime ge 2024-07-01T00:00:00Z and createdDateTime le 2024-07-14T23:59:59Z"
Questo esempio illustra come recuperare i log di accesso tra le date.
Esempio 10: Elencare gli accessi non riusciti per un utente
Connect-Entra -Scopes 'AuditLog.Read.All','Directory.Read.All'
$failedSignIns = Get-EntraBetaAuditSignInLog -Filter "userPrincipalName eq 'SawyerM@contoso.com' and status/errorCode ne 0"
$failedSignIns | Select-Object UserPrincipalName, CreatedDateTime, Status, IpAddress, ClientAppUsed | Format-Table -AutoSize
In questo esempio viene illustrato come recuperare gli accessi non riusciti per un utente.
Parametri
-All
Elencare tutte le pagine.
Proprietà dei parametri
| Tipo: | System.Management.Automation.SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Filter
Istruzione di filtro OData v4.0. Controlla gli oggetti restituiti.
Proprietà dei parametri
| Tipo: | System.String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Property
Specifica le proprietà da restituire
Proprietà dei parametri
| Tipo: | System.String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | Select |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Top
Numero massimo di record da restituire.
Proprietà dei parametri
| Tipo: | System.Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | Limit |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Note
Get-EntraBetaAuditSignInLogs è un alias per Get-EntraBetaAuditSignInLog.