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