Get-SqlErrorLog
Ruft die SQL Server-Fehlerprotokolle ab.
Syntax
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>]
Beschreibung
Das Cmdlet Get-SqlErrorLog ruft die SQL Server Fehlerprotokolle ab.
Dieses Cmdlet unterstützt die folgenden Betriebsmodi, um ein Fehlerprotokoll abzurufen:
- Übergeben Sie die instance der SQL Server.
- Geben Sie den Path-Parameter des SQL Server instance an.
- Rufen Sie das Cmdlet in einem gültigen Kontext auf.
Beispiele
Beispiel 1: Abrufen aller Protokolle, die in einem bestimmten Zeitraum generiert wurden und über ein Suchwort verfügen
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
Der erste Befehl ändert das Verzeichnis in die SQL Server instance.
Beispiel 2: Abrufen aller Protokolle, die in einem bestimmten Zeitrahmen generiert wurden
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.
Der erste Befehl ändert das Verzeichnis in die SQL Server instance.
Beispiel 3: Abrufen aller Protokolle, die in einem bestimmten Zeitrahmen generiert wurden, sortiert aufsteigend und gruppiert
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
Der erste Befehl ändert das Verzeichnis in die SQL Server instance.
Parameter
-AccessToken
Das Zugriffstoken, das zur Authentifizierung bei SQL Server verwendet wird, als Alternative zur Benutzer-/Kennwort- oder Windows-Authentifizierung.
Dies kann z. B. verwendet werden, um eine Verbindung mit SQL Azure DB
und SQL Azure Managed Instance
mithilfe von oder Service Principal
herzustellen Managed Identity
.
Der zu verwendende Parameter kann entweder eine Zeichenfolge sein, die das Token darstellt, oder ein PSAccessToken
Objekt, das durch Ausführen Get-AzAccessToken -ResourceUrl https://database.windows.net
von zurückgegeben wird.
Dieser Parameter ist in v22 des Moduls neu.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-After
Gibt an, dass dieses Cmdlet nur Fehlerprotokolle abruft, die nach der angegebenen Zeit generiert werden.
Wenn Sie den Parameter Before angeben, ruft dieses Cmdlet alle Fehlerprotokolle ab, die vor dem angegebenen generiert wurden.
Geben Sie diesen Parameter nicht an, wenn Sie die Parameter Since oder Timespan verwenden möchten.
Das Format wird gemäß den Regeln von .NET System.DataTime.Parse() definiert.
Type: | DateTime |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Ascending
Gibt an, dass das Cmdlet die Auflistung der Fehlerprotokolle nach dem Protokolldatum in aufsteigender Reihenfolge sortiert. Wenn Sie diesen Parameter nicht angeben, sortiert das Cmdlet die Fehlerprotokolle in absteigender Reihenfolge.
Wenn dieses Cmdlet Fehlerprotokolle aus mehreren Quellen abruft, wird die Sortierung auf alle Fehlerprotokolle aus derselben Quelle angewendet. Die Protokolle, die dieses Cmdlet abrufen, werden zuerst nach Quelle gruppiert und dann nach Protokolldatum sortiert.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Before
Gibt an, dass dieses Cmdlet nur Fehlerprotokolle abruft, die vor dem angegebenen Zeitpunkt generiert wurden.
Wenn der After-Parameter angegeben ist, wird das Cmdlet standardmäßig auf jetzt festgelegt. Dies bedeutet, dass das Cmdlet alle Fehlerprotokolle abruft, die nach dem, was Sie für diesen Parameter angegeben haben, bis zum heutigen Zeitpunkt generiert werden.
Geben Sie keinen Wert für diesen Parameter an, wenn Sie die Parameter Since oder Timespan verwenden möchten. Das Format wird gemäß den Regeln von .NET System.Datatime.Parse() definiert.
Type: | DateTime |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ConnectionTimeout
Gibt die Anzahl von Sekunden an, die vor einem Timeoutfehler auf eine Serververbindung gewartet werden soll. Der Timeoutwert muss einer ganzen Zahl zwischen 0 und 65.534 entsprechen. Wenn 0 angegeben wird, verursachen Verbindungsversuche kein Timeout.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Gibt ein PSCredential-Objekt an, das verwendet wird, um die Anmeldeinformationen für eine SQL Server Anmeldung anzugeben, die über die Berechtigung zum Ausführen dieses Vorgangs verfügt.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encrypt
Der Verschlüsselungstyp, der beim Herstellen einer Verbindung mit SQL Server verwendet werden soll.
Dieser Wert wird der Encrypt
-Eigenschaft SqlConnectionEncryptOption
des SqlConnection-Objekts des Microsoft.Data.SqlClient-Treibers zugeordnet.
In v22 des Moduls ist Optional
der Standardwert (aus Kompatibilität mit v21). In Version 23 und höher des Moduls lautet der Standardwert "Obligatorisch", was zu einer Breaking Change für vorhandene Skripts führen kann.
Dieser Parameter ist in v22 des Moduls neu.
Type: | String |
Accepted values: | Mandatory, Optional, Strict |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HostNameInCertificate
Der Hostname, der beim Überprüfen des TLS/SSL-Zertifikats von SQL Server verwendet werden soll. Sie müssen diesen Parameter übergeben, wenn Ihr SQL Server instance für "Verschlüsselung erzwingen" aktiviert ist und Sie eine Verbindung mit einem instance mithilfe des Hostnamens/Kurznamens herstellen möchten. Wenn dieser Parameter ausgelassen wird, ist die Übergabe des vollqualifizierten Domänennamens (Fully Qualified Domain Name, FQDN) an -ServerInstance erforderlich, um eine Verbindung mit einem für die Verschlüsselung erzwingen aktivierten SQL Server instance herzustellen.
Dieser Parameter ist in v22 des Moduls neu.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Gibt das Serverobjekt als Array des Ziels instance an, aus dem dieses Cmdlet die Protokolle erhält.
Type: | Server[] |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
Gibt den Pfad als Array zum instance von SQL Server an, auf dem dieses Cmdlet den Vorgang ausführt. Wenn Sie keinen Wert für diesen Parameter angeben, verwendet das Cmdlet den aktuellen Arbeitsspeicherort.
Type: | String[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ServerInstance
Gibt den Namen einer instance von SQL Server als Array an. Geben Sie für Standardinstanzen nur den Computernamen MyComputer an. Verwenden Sie für benannte Instanzen das Format ComputerName\Instanzname.
Type: | String[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Since
Gibt eine Abkürzung für den Timespan-Parameter an.
Geben Sie diesen Parameter nicht an, wenn Sie den After- oder Before-Parameter verwenden möchten.
Zulässige Werte für diesen Parameter:
- Mitternacht (ruft alle Protokolle ab, die nach Mitternacht generiert werden)
- Gestern (ruft alle Protokolle ab, die in den letzten 24 Stunden generiert wurden).
- LastWeek (ruft alle Protokolle ab, die in der letzten Woche generiert wurden)
- LastMonth (ruft alle Protokolle ab, die im letzten Monat generiert wurden)
Type: | SinceType |
Accepted values: | Midnight, Yesterday, LastWeek, LastMonth |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Timespan
Gibt ein TimeSpan-Objekt an, das dieses Cmdlet aus den Fehlerprotokollen herausfiltert, die außerhalb der Zeitspanne liegen.
Das Format dieses Parameters ist d.HH:mm:ss.
Dieser Parameter wird ignoriert, wenn Sie die Parameter Since, After oder Before verwenden.
Type: | TimeSpan |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TrustServerCertificate
Gibt an, ob der Kanal verschlüsselt wird, während das Durchlaufen der Zertifikatkette zum Überprüfen der Vertrauensstellung umgangen wird.
In v22 des Moduls ist $true
der Standardwert (aus Kompatibilität mit v21). In Version 23 und höher des Moduls lautet der Standardwert "$false", was zu einer Breaking Change für vorhandene Skripts führen kann.
Dieser Parameter ist in v22 des Moduls neu.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
System.String[]
Microsoft.SqlServer.Management.Smo.Server[]