Dela via


Write-Error

Skriver ett objekt till felströmmen.

Syntax

NoException (Standard)

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

WithException

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

ErrorRecord

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 i PowerShell-registerprovidern.

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 doesn't 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:

  • Ej specificerat
  • Öppet fel
  • CloseError (CloseError)
  • DeviceError (DeviceError)
  • DeadlockDetected (Dödläge)
  • InvalidArgument
  • InvalidData (Ogiltiga)
  • OgiltigÅtgärd
  • InvalidResult (OgiltigtResultat)
  • OgiltigTyp
  • MetadataError (MetadataError)
  • Ej implementerad
  • Inte installerad
  • ObjectNotFound (ObjektHittades inte)
  • Åtgärdstopad
  • Timeout (OperationTimeout)
  • SyntaxError (SyntaxError)
  • ParserError (ParserError)
  • BehörighetNekad
  • ResursUpptagen
  • ResourceExists (på engelska)
  • ResursEj tillgänglig
  • Läsfel
  • Skrivfel
  • FromStdErr
  • SecurityError (SäkerhetFel
  • ProtocolError
  • ConnectionError
  • AuthenticationError
  • Överskridna gränser
  • Kvot Överskriden
  • NotEnabled

Information om felkategorierna finns i ErrorCategory Enumeration.

Parameteregenskaper

Typ:ErrorCategory
Standardvärde:NotSpecified
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
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

NoException
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
WithException
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-CategoryActivity

Anger den åtgärd som orsakade felet.

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:False
DontShow:False
Alias:Aktivitet

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-CategoryReason

Anger hur eller varför aktiviteten orsakade felet.

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:False
DontShow:False
Alias:Förnuft

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-CategoryTargetName

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

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:False
DontShow:False
Alias:TargetName

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-CategoryTargetType

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

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:False
DontShow:False
Alias:Måltyp

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-ErrorId

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

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

NoException
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
WithException
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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.

Parameteregenskaper

Typ:ErrorRecord
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

ErrorRecord
Position:0
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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.

Parameteregenskaper

Typ:Exception
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

WithException
Position:0
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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.

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:False
DontShow:False
Alias:Msg

Parameteruppsättningar

NoException
Position:0
Obligatorisk:True
Värde från pipeline:True
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
WithException
Position:0
Obligatorisk:False
Värde från pipeline:True
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-RecommendedAction

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

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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.

Parameteregenskaper

Typ:Object
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

NoException
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
WithException
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

CommonParameters

Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.

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 felvillkor. Om du vill signalera ett avslutande fel använder du metoden $PSCmdlet.WriteError().