Write-Error

Menulis objek ke aliran kesalahan.

Sintaks

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>]

Deskripsi

Write-Error Cmdlet mendeklarasikan kesalahan yang tidak mengakhiri. Secara default, kesalahan dikirim dalam aliran kesalahan ke program host yang akan ditampilkan, bersama dengan output.

Untuk menulis kesalahan yang tidak mengakhiri, masukkan string pesan kesalahan, objek ErrorRecord , atau objek Pengecualian . Gunakan parameter lain untuk Write-Error mengisi catatan kesalahan.

Kesalahan yang tidak mengakhiri penulisan kesalahan ke aliran kesalahan, tetapi tidak menghentikan pemrosesan perintah. Jika kesalahan yang tidak mengakhiri dinyatakan pada satu item dalam kumpulan item input, perintah terus memproses item lain dalam koleksi.

Untuk menyatakan kesalahan penghentian, gunakan Throw kata kunci. Untuk informasi selengkapnya, lihat about_Throw.

Contoh

Contoh 1: Menulis kesalahan untuk objek RegistryKey

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

Perintah ini mendeklarasikan kesalahan yang tidak mengakhiri saat Get-ChildItem cmdlet mengembalikan Microsoft.Win32.RegistryKey objek, seperti objek di HKLM: atau HKCU: drive penyedia Registri PowerShell.

Contoh 2: Menulis pesan kesalahan ke konsol

Write-Error "Access denied."

Perintah ini menyatakan kesalahan yang tidak mengakhiri dan menulis kesalahan "Akses ditolak". Perintah menggunakan parameter Pesan untuk menentukan pesan, tetapi menghilangkan nama parameter Pesan opsional.

Contoh 3: Menulis kesalahan ke konsol dan menentukan kategori

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

Perintah ini menyatakan kesalahan yang tidak mengakhiri dan menentukan kategori kesalahan.

Contoh 4: Menulis kesalahan menggunakan objek Pengecualian

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

Perintah ini menggunakan objek Pengecualian untuk mendeklarasikan kesalahan yang tidak mengakhiri.

Perintah pertama menggunakan tabel hash untuk membuat objek System.Exception . Ini menyimpan objek pengecualian dalam $E variabel. Anda dapat menggunakan tabel hash untuk membuat objek jenis apa pun yang memiliki konstruktor null.

Perintah kedua menggunakan Write-Error cmdlet untuk mendeklarasikan kesalahan yang tidak mengakhiri. Nilai parameter Pengecualian adalah objek Pengecualian dalam $E variabel .

Parameter

-Category

Menentukan kategori kesalahan. Nilai defaultnya adalah NotSpecified. Nilai yang dapat diterima untuk parameter ini adalah:

  • Tidak Ditentukan
  • OpenError
  • CloseError
  • DeviceError
  • DeadlockDetected
  • InvalidArgument
  • InvalidData
  • InvalidOperation
  • InvalidResult
  • InvalidType
  • MetadataError
  • NotImplemented
  • Tidak Terinstal
  • ObjectNotFound
  • OperationStopped
  • OperationTimeout
  • SintaksError
  • ParserError
  • Izin Dideni
  • ResourceBusy
  • ResourceExists
  • ResourceUnavailable
  • ReadError
  • WriteError
  • FromStdErr
  • SecurityError
  • ProtocolError
  • Koneksi ionError
  • AuthenticationError
  • LimitsExceeded
  • QuotaExceeded
  • NotEnabled

Untuk informasi tentang kategori kesalahan, lihat Enumerasi ErrorCategory.

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

Menentukan tindakan yang menyebabkan kesalahan.

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

-CategoryReason

Menentukan bagaimana atau mengapa aktivitas menyebabkan kesalahan.

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

-CategoryTargetName

Menentukan nama objek yang sedang diproses ketika terjadi kesalahan.

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

-CategoryTargetType

Menentukan tipe objek yang sedang diproses ketika terjadi kesalahan.

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

-ErrorId

Menentukan string ID untuk mengidentifikasi kesalahan. String harus unik untuk kesalahan.

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

-ErrorRecord

Menentukan objek rekaman kesalahan yang mewakili kesalahan. Gunakan properti objek untuk menjelaskan kesalahan.

Untuk membuat objek rekaman kesalahan, gunakan New-Object cmdlet atau dapatkan objek rekaman kesalahan dari array dalam $Error variabel otomatis.

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

-Exception

Menentukan objek pengecualian yang mewakili kesalahan. Gunakan properti objek untuk menjelaskan kesalahan.

Untuk membuat objek pengecualian, gunakan tabel hash atau gunakan New-Object cmdlet.

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

-Message

Menentukan teks pesan kesalahan. Jika teks menyertakan spasi atau karakter khusus, sertakan dalam tanda kutip. Anda juga dapat menyalurkan string pesan ke Write-Error.

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

-RecommendedAction

Menentukan tindakan yang harus diambil pengguna untuk mengatasi atau mencegah kesalahan.

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

-TargetObject

Menentukan objek yang sedang diproses ketika terjadi kesalahan. Masukkan objek, variabel yang berisi objek, atau perintah yang mendapatkan objek.

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

Input

String

Anda dapat menyalurkan string yang berisi pesan kesalahan ke cmdlet ini.

Output

None

Cmdlet ini tidak mengembalikan output. Ini hanya menulis ke aliran pesan kesalahan.

Catatan

Write-Error tidak mengubah nilai $? variabel otomatis, oleh karena itu tidak menandakan kondisi kesalahan yang mengakhiri. Untuk memberi sinyal kesalahan penghentian, gunakan metode $PSCmdlet.WriteError().