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[]