Condividi tramite


Get-SqlErrorLog

Ottiene i log degli errori di SQL Server.

Sintassi

Get-SqlErrorLog
   [-Timespan <TimeSpan>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Since <SinceType>]
   [-Ascending]
   [[-Path] <String[]>]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [<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>]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]
Get-SqlErrorLog
   [-Timespan <TimeSpan>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Since <SinceType>]
   [-Ascending]
   [-InputObject] <Server[]>
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]

Descrizione

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

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

  • Passare l'istanza di 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 a SQL Server, come alternativa all'autenticazione utente/password o windows.

Può essere usato, ad esempio, per connettersi a SQL Azure DB e SQL Azure Managed Instance usando un Service Principal o un Managed Identity.

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

Questo parametro è nuovo nella versione 22 del modulo.

Tipo:PSObject
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-After

Specifica che questo cmdlet ottiene solo i log degli errori generati dopo il tempo specificato.

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().

Tipo:DateTime
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Ascending

Indica che il cmdlet ordina la raccolta di 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 i log degli errori registra più origini, l'ordinamento viene applicato a tutti i log degli errori dalla stessa origine. I log che ottengono vengono raggruppati per origine e quindi ordinati in base alla data del log.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Before

Specifica che questo cmdlet ottiene solo i log degli errori generati prima del tempo specificato.

Se si specifica il parametro After, per impostazione predefinita il cmdlet diventa ora, vale a dire che il cmdlet ottiene tutti i log degli errori generati dopo ciò che è stato specificato per questo parametro fino al momento corrente.

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

Tipo:DateTime
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ConnectionTimeout

Specifica il numero di secondi di attesa di 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, i tentativi di connessione non si verifica il timeout.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Credential

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

Tipo:PSCredential
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Encrypt

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

Questo valore esegue il mapping alla proprietà EncryptSqlConnectionEncryptOption sull'oggetto SqlConnection del driver Microsoft.Data.SqlClient.

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

Questo parametro è nuovo nella versione 22 del modulo.

Tipo:String
Valori accettati:Mandatory, Optional, Strict
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-HostNameInCertificate

Nome host da usare per convalidare il certificato TLS/SSL di SQL Server. È necessario passare questo parametro se l'istanza di SQL Server è abilitata per Forza crittografia 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 Forza crittografia.

Questo parametro è nuovo nella versione 22 del modulo.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-InputObject

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

Tipo:Server[]
Posizione:1
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly: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 la posizione di lavoro corrente.

Tipo:String[]
Posizione:1
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ProgressAction

Determina in che modo PowerShell risponde agli aggiornamenti dello stato generati da uno script, un cmdlet o un provider, ad esempio le barre di stato generate dal cmdlet Write-Progress. Il cmdlet Write-Progress crea barre di stato che mostrano lo stato di un comando.

Tipo:ActionPreference
Alias:proga
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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 NomeComputer\NomeIstanza.

Tipo:String[]
Posizione:1
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Since

Specifica un'abbreviazione per il parametro Timespan.

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

I valori accettabili per questo parametro sono:

  • Mezzanotte (ottiene tutti i log generati dopo la mezzanotte)
  • Ieri (ottiene tutti i log generati nelle ultime 24 ore).
  • LastWeek (ottiene tutti i log generati nell'ultima settimana)
  • LastMonth (ottiene tutti i log generati nell'ultimo mese)
Tipo:SinceType
Valori accettati:Midnight, Yesterday, LastWeek, LastMonth
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Timespan

Specifica un oggetto TimeSpan che questo cmdlet filtra i log degli errori che non rientrano nell'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.

Tipo:TimeSpan
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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 compatibilità con v21). Nella versione 23+ del modulo, il valore predefinito sarà "$false", che potrebbe creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

System.String[]

Microsoft.SqlServer.Management.Smo.Server[]