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.