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 undantagsobjekt . Använd de andra parametrarna Write-Error för 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 HKLM: i eller HKCU: enheterna i PowerShell Registry-providern.

Exempel 2: Skriv 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 Meddelande för att ange meddelandet, men utelämnar det valfria namnet på meddelandeparametern.

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 undantagsobjekt 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 undantagsparametern är undantagsobjektet i variabeln $E .

Parametrar

-Category

Anger felkategorin. Standardvärdet är NotSpecified. De acceptabla värdena för den här parametern är:

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

Information om felkategorierna finns i ErrorCategory Enumeration.

Type:ErrorCategory
Accepted values: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
Default value:NotSpecified
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CategoryActivity

Anger den åtgärd som orsakade felet.

Type:String
Aliases:Activity
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CategoryReason

Anger hur eller varför aktiviteten orsakade felet.

Type:String
Aliases:Reason
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CategoryTargetName

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

Type:String
Aliases:TargetName
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CategoryTargetType

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

Type:String
Aliases:TargetType
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ErrorId

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:ErrorRecord
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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 .

Type:Exception
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Aliases:Msg
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-RecommendedAction

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

String

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

Utdata

Error object

Write-Error skriver bara till felströmmen. Inga objekt returneras.

Kommentarer

Write-Error ändrar inte värdet för den $? automatiska variabeln, därför signalerar det inte ett avslutande feltillstånd. Om du vill signalera ett avslutande fel använder du metoden $PSCmdlet.WriteError().