Get-SqlErrorLog

Ottiene i log degli errori SQL Server.

Sintassi

Get-SqlErrorLog
   [-Timespan <TimeSpan>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Since <SinceType>]
   [-Ascending]
   [[-Path] <String[]>]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [<CommonParameters>]
Get-SqlErrorLog
   [-Timespan <TimeSpan>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Since <SinceType>]
   [-Ascending]
   [[-ServerInstance] <String[]>]
   [-Credential <PSCredential>]
   [-ConnectionTimeout <Int32>]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [<CommonParameters>]
Get-SqlErrorLog
   [-Timespan <TimeSpan>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Since <SinceType>]
   [-Ascending]
   [-InputObject] <Server[]>
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [<CommonParameters>]

Descrizione

Il cmdlet Get-SqlErrorLog ottiene i log degli errori di SQL Server.

Questo cmdlet supporta le modalità di operazione seguenti per ottenere un log degli errori:

  • Passare l'istanza del SQL Server.
  • Specificare il parametro Path dell'istanza di SQL Server.
  • Richiamare il cmdlet in un contesto valido.

Esempio

Esempio 1: Ottenere tutti i log generati in un intervallo di tempo specifico con una parola di ricerca

PS C:\> CD SQLSERVER:\SQL\MyServer\MyInstance
PS SQLSERVER:\SQL\MyServer\MyInstance> Get-SqlErrorLog -Since Yesterday  | Where-Object { $_.Text -match 'Error' } | Format-Table

Date                 Source Text                                  ArchiveNo ServerInstance
----                 ------ ----                                  --------- --------------
6/16/2016 6:04:20 PM Logon  Error: 17828, Severity: 20, State: 4.         0 MyServer\MyInstance

Il primo comando modifica la directory nell'istanza di SQL Server.

Esempio 2: Ottenere tutti i log generati in un intervallo di tempo specifico

PS C:\> CD SQLSERVER:\SQL\MyServer\MyInstance
PS SQLSERVER:\SQL\MyServer\MyInstance> Get-SqlErrorLog -Timespan '05:30:00' | Format-Table

Date                  Source  Text
----                  ------  ----
6/17/2016 12:00:00 AM spid26s This instance of SQL Server has been using a process ID of 21520 since 6/10/2016 3:56:... 
6/16/2016 6:04:20 PM  Logon   The prelogin packet used to open the connection is structurally invalid; the connectio... 
6/16/2016 6:04:20 PM  Logon   Error: 17828, Severity: 20, State: 4.

Il primo comando modifica la directory nell'istanza di SQL Server.

Esempio 3: Ottenere tutti i log generati in un intervallo di tempo specifico ordinato crescente e raggruppato

PS C:\> CD SQLSERVER:\SQL\MyServer
PS SQLSERVER:\SQL\MyServer> ls | Get-SqlErrorLog -After '2016-05-10' -Before '2016-06-18' -Ascending | ? { $_.Text -match 'Login failed' } | Group-Object -Property ServerInstance

Count Name                      Group
----- ----                      -----
    1 MyServer                  {{ Date = 6/17/2016 2:00:04 AM, Source = Logon, Text = Login failed for user ... 
    2 MyServer\INST1            {{ Date = 6/10/2016 3:58:46 PM, Source = Logon, Text = Login failed for user

Il primo comando modifica la directory nell'istanza di SQL Server.

Parametri

-AccessToken

Token di accesso usato per eseguire l'autenticazione per SQL Server, come alternativa all'autenticazione utente/password o a Windows.

Questa operazione può essere usata, ad esempio, per connettersi a SQL Azure DB e SQL Azure Managed Instance usando un Service Principal oggetto o .Managed Identity

Il parametro da usare può essere una stringa che rappresenta il token o un PSAccessToken oggetto restituito eseguendo Get-AzAccessToken -ResourceUrl https://database.windows.net.

Questo parametro è nuovo nella versione 22 del modulo.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-After

Specifica che questo cmdlet ottiene solo i log degli errori generati dopo l'ora specificata.

Se si specifica il parametro Before, questo cmdlet ottiene tutti i log degli errori generati prima dell'oggetto specificato.

Non specificare questo parametro se si intende usare i parametri Since o Timespan.

Il formato viene definito in base alle regole di .Net System.DataTime.Parse().

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Ascending

Indica che il cmdlet ordina la raccolta dei log degli errori in base alla data del log in ordine crescente. Se non si specifica questo parametro, il cmdlet ordina i log degli errori in ordine decrescente.

Quando questo cmdlet ottiene più origini, l'ordinamento viene applicato a tutti i log degli errori dalla stessa origine. I log di questo cmdlet vengono raggruppati per origine prima e quindi ordinati in base alla data di log.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Before

Specifica che questo cmdlet ottiene solo i log degli errori generati prima dell'ora specificata.

Se il parametro After viene specificato, il cmdlet viene predefinito a questo momento, significa che il cmdlet ottiene tutti i log degli errori generati dopo ciò che è stato specificato per questo parametro fino all'ora corrente.

Non specificare un valore per questo parametro se si intende usare i parametri Since o Timespan. Il formato viene definito in base alle regole di .Net System.Datatime.Parse().

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionTimeout

Specifica il numero di secondi per attendere una connessione server prima di un errore di timeout. Il valore di timeout deve essere un numero intero compreso tra 0 e 65534. Se si specifica 0, non si verifica alcun timeout dei tentativi di connessione.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Specifica un oggetto PSCredential usato per specificare le credenziali per un account di accesso SQL Server che dispone dell'autorizzazione per eseguire questa operazione.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

Tipo di crittografia da usare durante la connessione a SQL Server.

Questo valore esegue il Encrypt mapping alla proprietà SqlConnectionEncryptOption nell'oggetto SqlConnection del driver Microsoft.Data.SqlClient.

Nella versione 22 del modulo il valore predefinito è Optional (per la compatibilità con v21). Nella versione 23+ del modulo il valore predefinito sarà "Obbligatorio", che può creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

Nome host da usare per la convalida del certificato TLS/SSL di SQL Server. È necessario passare questo parametro se l'istanza di SQL Server è abilitata per Force Encryption e si vuole connettersi a un'istanza usando nome host/nome breve. Se questo parametro viene omesso, è necessario passare il nome di dominio completo (FQDN) a -ServerInstance per connettersi a un'istanza di SQL Server abilitata per Force Encryption.

Questo parametro è nuovo nella versione 22 del modulo.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Specifica l'oggetto server, come matrice, dell'istanza di destinazione da cui questo cmdlet ottiene i log.

Type:Server[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

Specifica il percorso, come matrice, all'istanza di SQL Server in cui questo cmdlet esegue l'operazione. Se non si specifica un valore per questo parametro, il cmdlet usa il percorso di lavoro corrente.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServerInstance

Specifica il nome di un'istanza di SQL Server, come matrice. Per le istanze predefinite, specificare solo il nome del computer: MyComputer. Per le istanze denominate, usare il formato ComputerName\InstanceName.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Since

Specifica un'abbreviazione per il parametro Timespan.

Non specificare questo parametro se si intende usare il parametro After o Before.

I valori validi per questo parametro sono:

  • Mezzanotte (ottiene tutti i log generati dopo mezzanotte)
  • Ieri (ottiene tutti i log generati negli ultimi 24 ore).
  • LastWeek (ottiene tutti i log generati nell'ultima settimana)
  • LastMonth (ottiene tutti i log generati nell'ultimo mese)
Type:SinceType
Accepted values:Midnight, Yesterday, LastWeek, LastMonth
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Timespan

Specifica un oggetto TimeSpan che questo cmdlet filtra i log degli errori esterni all'intervallo di tempo.

Il formato di questo parametro è d.HH:mm:ss.

Questo parametro viene ignorato se si usano i parametri Since, After o Before.

Type:TimeSpan
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TrustServerCertificate

Indica se il canale verrà crittografato durante il bypass della catena di certificati per convalidare l'attendibilità.

Nella versione 22 del modulo il valore predefinito è $true (per la compatibilità con v21). Nella versione 23+ del modulo il valore predefinito sarà "$false", che può creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

System.String[]

Microsoft.SqlServer.Management.Smo.Server[]