Dela via


Write-Error

Skriver ett objekt till felströmmen.

Syntax

Write-Error
     [-Message] <String>
     [-Category <ErrorCategory>]
     [-ErrorId <String>]
     [-TargetObject <Object>]
     [-RecommendedAction <String>]
     [-CategoryActivity <String>]
     [-CategoryReason <String>]
     [-CategoryTargetName <String>]
     [-CategoryTargetType <String>]
     [<CommonParameters>]
Write-Error
     -Exception <Exception>
     [-Message <String>]
     [-Category <ErrorCategory>]
     [-ErrorId <String>]
     [-TargetObject <Object>]
     [-RecommendedAction <String>]
     [-CategoryActivity <String>]
     [-CategoryReason <String>]
     [-CategoryTargetName <String>]
     [-CategoryTargetType <String>]
     [<CommonParameters>]
Write-Error
     -ErrorRecord <ErrorRecord>
     [-RecommendedAction <String>]
     [-CategoryActivity <String>]
     [-CategoryReason <String>]
     [-CategoryTargetName <String>]
     [-CategoryTargetType <String>]
     [<CommonParameters>]

Description

Cmdleten Write-Error deklarerar ett icke-avslutande fel. Som standard skickas fel i felströmmen till värdprogrammet som ska visas, tillsammans med utdata.

Om du vill skriva ett icke-avslutande fel anger du en felmeddelandesträng, ett ErrorRecord--objekt eller ett undantag objekt. Använd de andra parametrarna i Write-Error för att fylla i felposten.

Icke-avslutande fel skriver ett fel till felströmmen, men de stoppar inte kommandobearbetningen. Om ett icke-avslutande fel deklareras för ett objekt i en samling indataobjekt fortsätter kommandot att bearbeta de andra objekten i samlingen.

Om du vill deklarera ett avslutande fel använder du nyckelordet Throw. Mer information finns i about_Throw.

Exempel

Exempel 1: Skriva ett fel för RegistryKey-objekt

Get-ChildItem | ForEach-Object {
    if ($_.GetType().ToString() -eq "Microsoft.Win32.RegistryKey")
    {
        Write-Error "Invalid object" -ErrorId B1 -TargetObject $_
    }
    else
    {
        $_
    }
}

Det här kommandot deklarerar ett icke-avslutande fel när cmdleten Get-ChildItem returnerar ett Microsoft.Win32.RegistryKey-objekt, till exempel objekten i HKLM: eller HKCU: enheter för PowerShell Registry-providern.

Exempel 2: Skriva ett felmeddelande till konsolen

Write-Error "Access denied."

Det här kommandot deklarerar ett icke-avslutande fel och skriver felet "Åtkomst nekad". Kommandot använder parametern Message för att ange meddelandet, men utelämnar det valfria parameternamnet Message.

Exempel 3: Skriv ett fel till konsolen och ange kategorin

Write-Error -Message "Error: Too many input values." -Category InvalidArgument

Det här kommandot deklarerar ett icke-avslutande fel och anger en felkategori.

Exempel 4: Skriva ett fel med hjälp av ett undantagsobjekt

$E = [System.Exception]@{Source="Get-ParameterNames.ps1";HelpLink="https://go.microsoft.com/fwlink/?LinkID=113425"}
Write-Error -Exception $E -Message "Files not found. The $Files location does not contain any XML files."

Det här kommandot använder ett Exception-objekt för att deklarera ett icke-avslutande fel.

Det första kommandot använder en hash-tabell för att skapa objektet System.Exception. Undantagsobjektet sparas i variabeln $E. Du kan använda en hash-tabell för att skapa alla objekt av en typ som har en null-konstruktor.

Det andra kommandot använder cmdleten Write-Error för att deklarera ett icke-avslutande fel. Värdet för parametern Exception är objektet Exception i variabeln $E.

Parametrar

-Category

Anger kategorin för felet. Standardvärdet är NotSpecified. De godtagbara värdena för den här parametern är:

  • NotSpecified
  • OpenError
  • CloseError
  • DeviceError
  • DeadlockDetected
  • InvalidArgument
  • InvalidData
  • InvalidOperation
  • InvalidResult
  • InvalidType
  • MetadataError
  • Inteimplementerad
  • NotInstalled
  • ObjectNotFound
  • Åtgärdstopad
  • OperationTimeout
  • SyntaxError
  • ParserError
  • PermissionDenied
  • ResourceBusy
  • ResourceExists
  • ResourceUnavailable
  • ReadError
  • WriteError
  • FromStdErr
  • SecurityError
  • ProtocolError
  • ConnectionError
  • AuthenticationError
  • LimitsExceeded
  • QuotaExceeded
  • NotEnabled

Information om felkategorierna finns i ErrorCategory Enumeration.

Typ:ErrorCategory
Godkända värden:NotSpecified, OpenError, CloseError, DeviceError, DeadlockDetected, InvalidArgument, InvalidData, InvalidOperation, InvalidResult, InvalidType, MetadataError, NotImplemented, NotInstalled, ObjectNotFound, OperationStopped, OperationTimeout, SyntaxError, ParserError, PermissionDenied, ResourceBusy, ResourceExists, ResourceUnavailable, ReadError, WriteError, FromStdErr, SecurityError, ProtocolError, ConnectionError, AuthenticationError, LimitsExceeded, QuotaExceeded, NotEnabled
Position:Named
Standardvärde:NotSpecified
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-CategoryActivity

Anger den åtgärd som orsakade felet.

Typ:String
Alias:Activity
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-CategoryReason

Anger hur eller varför aktiviteten orsakade felet.

Typ:String
Alias:Reason
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-CategoryTargetName

Anger namnet på det objekt som bearbetades när felet inträffade.

Typ:String
Alias:TargetName
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-CategoryTargetType

Anger typen av objekt som bearbetades när felet inträffade.

Typ:String
Alias:TargetType
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-ErrorId

Anger en ID-sträng för att identifiera felet. Strängen ska vara unik för felet.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-ErrorRecord

Anger ett felpostobjekt som representerar felet. Använd egenskaperna för objektet för att beskriva felet.

Om du vill skapa ett felpostobjekt använder du cmdleten New-Object eller hämtar ett felpostobjekt från matrisen i den $Error automatiska variabeln.

Typ:ErrorRecord
Position:Named
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Exception

Anger ett undantagsobjekt som representerar felet. Använd egenskaperna för objektet för att beskriva felet.

Om du vill skapa ett undantagsobjekt använder du en hash-tabell eller använder cmdleten New-Object.

Typ:Exception
Position:Named
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Message

Anger meddelandetexten för felet. Om texten innehåller blanksteg eller specialtecken omger du den inom citattecken. Du kan också skicka en meddelandesträng till Write-Error.

Typ:String
Alias:Msg
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-RecommendedAction

Anger vilken åtgärd användaren ska vidta för att lösa eller förhindra felet.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-TargetObject

Anger det objekt som bearbetades när felet inträffade. Ange objektet, en variabel som innehåller objektet eller ett kommando som hämtar objektet.

Typ:Object
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

Indata

String

Du kan skicka en sträng som innehåller ett felmeddelande till Write-Error.

Utdata

Error object

Write-Error skrivs endast till felströmmen. Det returnerar inga objekt.