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 powershell-registerproviderns eller HKCU: enheter.

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 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 doesn't 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 parametern Undantag är objektet Undantag i variabeln $E .

Parametrar

-Category

Anger kategorin för felet. 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
  • Inteimplementerad
  • NotInstalled
  • ObjectNotFound
  • Åtgärdstopad
  • OperationTimeout
  • SyntaxError
  • ParserError
  • PermissionDenied
  • ResourceBusy
  • ResourceExists
  • ResourceUnavailable
  • ReadError
  • WriteError
  • FromStdErr
  • SecurityError
  • ProtocolError
  • Anslut ionError
  • 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:0
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:0
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 vilken åtgärd 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 den här cmdleten.

Utdata

None

Den här cmdleten returnerar inga utdata. Den skriver bara till felmeddelandeströmmen.

Kommentarer

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