Aracılığıyla paylaş


Write-Error

Hata akışına bir nesne yazar.

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

Write-Error Cmdlet sonlandırılmayan bir hata bildirir. Varsayılan olarak, hata akışında hatalar, görüntülenecek konak programına ve çıkışa gönderilir.

Sonlandırılmayan bir hata yazmak için hata iletisi dizesi, ErrorRecord nesnesi veya Özel Durum nesnesi girin. Hata kaydını doldurmak için diğer parametrelerini Write-Error kullanın.

Sonlandırılmayan hatalar hata akışına bir hata yazar, ancak komut işlemeyi durdurmaz. Giriş öğeleri koleksiyonundaki bir öğede sonlandırılmayan bir hata bildirilirse, komut koleksiyondaki diğer öğeleri işlemeye devam eder.

Sonlandırıcı bir hata bildirmek için anahtar sözcüğünü Throw kullanın. Daha fazla bilgi için bkz . about_Throw.

Örnekler

Örnek 1: RegistryKey nesnesi için hata yazma

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

Bu komut, cmdlet PowerShell Kayıt Defteri sağlayıcısının Get-ChildItem veya HKCU: sürücülerindeki nesneler gibi bir nesne döndürdüğünde HKLM: sonlandırıcı olmayan bir Microsoft.Win32.RegistryKey hata bildirir.

Örnek 2: Konsola hata iletisi yazma

Write-Error "Access denied."

Bu komut sonlandırıcı olmayan bir hata bildirir ve "Erişim reddedildi" hatası yazar. komutu, iletiyi belirtmek için message parametresini kullanır, ancak isteğe bağlı message parametresi adını atlar.

Örnek 3: Konsola bir hata yazın ve kategoriyi belirtin

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

Bu komut sonlandırıcı olmayan bir hata bildirir ve bir hata kategorisi belirtir.

Örnek 4: Özel Durum nesnesi kullanarak hata yazma

$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."

Bu komut, sonlandırılmayan bir hata bildirmek için bir Exception nesnesi kullanır.

İlk komut, System.Exception nesnesini oluşturmak için bir karma tablo kullanır. Özel durum nesnesini değişkene $E kaydeder. Null oluşturucuya sahip bir türe ait herhangi bir nesne oluşturmak için karma tablo kullanabilirsiniz.

İkinci komut, sonlandırıcı olmayan bir hata bildirmek için cmdlet'ini kullanır Write-Error . Exception parametresinin değeri değişkendeki $E Exception nesnesidir.

Parametreler

-Category

Hatanın kategorisini belirtir. Varsayılan değer NotSpecified değeridir. Bu parametrenin kabul edilebilir değerleri şunlardır:

  • Notspecified
  • OpenError
  • CloseError
  • DeviceError
  • Kilitlenme Algılandı
  • InvalidArgument
  • InvalidData
  • InvalidOperation
  • InvalidResult
  • InvalidType
  • MetadataError
  • NotImplemented
  • NotInstalled
  • ObjectNotFound
  • OperationStopped
  • OperationTimeout
  • Söz DizimiHata
  • Parsererror
  • PermissionDenied
  • ResourceBusy
  • ResourceExists
  • ResourceUnavailable
  • ReadError
  • WriteError
  • FromStdErr
  • SecurityError
  • ProtocolError
  • Bağlan ionError
  • AuthenticationError
  • LimitlerExceeded
  • QuotaExceeded
  • NotEnabled

Hata kategorileri hakkında bilgi için bkz . ErrorCategory Sabit Listesi.

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

Hataya neden olan eylemi belirtir.

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

-CategoryReason

Etkinliğin hataya nasıl veya neden neden olduğunu belirtir.

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

-CategoryTargetName

Hata oluştuğunda işlenen nesnenin adını belirtir.

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

-CategoryTargetType

Hata oluştuğunda işlenen nesnenin türünü belirtir.

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

-ErrorId

Hatayı tanımlamak için bir kimlik dizesi belirtir. Dize hataya benzersiz olmalıdır.

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

-ErrorRecord

Hatayı temsil eden bir hata kaydı nesnesi belirtir. Hatayı açıklamak için nesnesinin özelliklerini kullanın.

Hata kaydı nesnesi oluşturmak için cmdlet'ini New-Object kullanın veya otomatik değişkendeki $Error diziden bir hata kaydı nesnesi alın.

Type:ErrorRecord
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Exception

Hatayı temsil eden bir özel durum nesnesi belirtir. Hatayı açıklamak için nesnesinin özelliklerini kullanın.

Özel durum nesnesi oluşturmak için bir karma tablo kullanın veya cmdlet'ini New-Object kullanın.

Type:Exception
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Message

Hatanın ileti metnini belirtir. Metin boşluk veya özel karakterler içeriyorsa, metni tırnak içine alın. İleti dizesini adresine Write-Errorde iletebilirsiniz.

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

-RecommendedAction

Kullanıcının hatayı çözmek veya önlemek için gerçekleştirmesi gereken eylemi belirtir.

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

-TargetObject

Hata oluştuğunda işlenen nesneyi belirtir. nesnesini, nesneyi içeren bir değişkeni veya nesneyi alan bir komutu girin.

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

Girişler

String

Hata iletisi içeren bir dizeyi bu cmdlet'e iletebilirsiniz.

Çıkışlar

None

Bu cmdlet çıkış döndürmez. Yalnızca hata iletisi akışına yazar.

Notlar

Write-Error otomatik değişkenin $? değerini değiştirmez, bu nedenle sonlandırıcı bir hata koşuluna işaret etmez. Sonlandırıcı bir hata sinyali vermek için $PSCmdlet.WriteError() yöntemini kullanın.