Write-Error
Zapisuje obiekt w strumieniu błędów.
Składnia
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>]
Opis
Polecenie cmdlet Write-Error
deklaruje błąd bez zakończenia. Domyślnie błędy są wysyłane w strumieniu błędów do programu hosta do wyświetlenia wraz z danymi wyjściowymi.
Aby napisać błąd bez zakończenia, wprowadź ciąg komunikatu o błędzie, obiekt ErrorRecord lub obiekt Exception. Użyj innych parametrów Write-Error
, aby wypełnić rekord błędu.
Błędy niepowodujące zakończenia zapisują błąd w strumieniu błędów, ale nie zatrzymują przetwarzania poleceń. Jeśli w kolekcji elementów wejściowych zadeklarowany jest błąd niepowodujący zakończenia, polecenie będzie nadal przetwarzać inne elementy w kolekcji.
Aby zadeklarować błąd zakończenia, użyj słowa kluczowego Throw
.
Aby uzyskać więcej informacji, zobacz about_Throw.
Przykłady
Przykład 1: Zapis błędu dla obiektu RegistryKey
Get-ChildItem | ForEach-Object {
if ($_.GetType().ToString() -eq "Microsoft.Win32.RegistryKey")
{
Write-Error "Invalid object" -ErrorId B1 -TargetObject $_
}
else
{
$_
}
}
To polecenie deklaruje błąd, który nie kończy się, gdy polecenie cmdlet Get-ChildItem
zwraca obiekt Microsoft.Win32.RegistryKey, taki jak obiekty w HKLM: lub HKCU: dyski dostawcy rejestru programu PowerShell.
Przykład 2. Zapisywanie komunikatu o błędzie w konsoli
Write-Error "Access denied."
To polecenie deklaruje błąd niepowodujący zakończenia i zapisuje błąd "Odmowa dostępu". Polecenie używa parametru Message w celu określenia komunikatu, ale pomija opcjonalną nazwę parametru Message.
Przykład 3: Zapisywanie błędu w konsoli i określanie kategorii
Write-Error -Message "Error: Too many input values." -Category InvalidArgument
To polecenie deklaruje błąd niepowodujący zakończenia i określa kategorię błędów.
Przykład 4. Zapisywanie błędu przy użyciu obiektu Exception
$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."
To polecenie używa obiektu wyjątku
Pierwsze polecenie używa tabeli skrótów do utworzenia obiektu System.Exception. Zapisuje obiekt wyjątku w zmiennej $E
. Tabelę skrótów można użyć do utworzenia dowolnego obiektu typu, który ma konstruktor o wartości null.
Drugie polecenie używa polecenia cmdlet Write-Error
do deklarowania błędu bez zakończenia. Wartość parametru wyjątku
Parametry
-Category
Określa kategorię błędu. Wartość domyślna to NotSpecified. Dopuszczalne wartości tego parametru to:
- Nieokreślony
- OpenError
- CloseError
- DeviceError
- DeadlockDetected
- InvalidArgument
- InvalidData
- InvalidOperation
- InvalidResult
- Nieprawidłowy typ
- MetadataError
- Nieimplementowane
- Nieinstalowane
- ObjectNotFound
- OperationStopped
- OperationTimeout
- SkładniaError
- ParserError
- PermissionDenied
- ZasóbBusy
- ResourceExists
- ZasóbDostępny
- ReadError
- WriteError
- FromStdErr
- SecurityError
- ProtocolError
- ConnectionError
- AuthenticationError
- LimitsExceeded
- QuotaExceed
- NotEnabled
Aby uzyskać informacje o kategoriach błędów, zobacz ErrorCategory Enumeration.
Typ: | ErrorCategory |
Dopuszczalne wartości: | 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 |
Domyślna wartość: | NotSpecified |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CategoryActivity
Określa akcję, która spowodowała błąd.
Typ: | String |
Aliasy: | Activity |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CategoryReason
Określa, jak lub dlaczego działanie spowodowało błąd.
Typ: | String |
Aliasy: | Reason |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CategoryTargetName
Określa nazwę obiektu, który był przetwarzany podczas wystąpienia błędu.
Typ: | String |
Aliasy: | TargetName |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CategoryTargetType
Określa typ obiektu, który był przetwarzany podczas wystąpienia błędu.
Typ: | String |
Aliasy: | TargetType |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ErrorId
Określa ciąg identyfikatora, aby zidentyfikować błąd. Ciąg powinien być unikatowy dla błędu.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ErrorRecord
Określa obiekt rekordu błędu, który reprezentuje błąd. Użyj właściwości obiektu, aby opisać błąd.
Aby utworzyć obiekt rekordu błędu, użyj polecenia cmdlet New-Object
lub uzyskaj obiekt rekordu błędu z tablicy w zmiennej automatycznej $Error
.
Typ: | ErrorRecord |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Exception
Określa obiekt wyjątku, który reprezentuje błąd. Użyj właściwości obiektu, aby opisać błąd.
Aby utworzyć obiekt wyjątku, użyj tabeli skrótów lub użyj polecenia cmdlet New-Object
.
Typ: | Exception |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Message
Określa tekst komunikatu o błędzie. Jeśli tekst zawiera spacje lub znaki specjalne, należy go ująć w cudzysłów. Możesz również przekazać ciąg komunikatu do Write-Error
.
Typ: | String |
Aliasy: | Msg |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-RecommendedAction
Określa akcję, którą użytkownik powinien podjąć, aby rozwiązać problem lub zapobiec temu błędowi.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-TargetObject
Określa obiekt, który był przetwarzany podczas wystąpienia błędu. Wprowadź obiekt, zmienną zawierającą obiekt lub polecenie, które pobiera obiekt.
Typ: | Object |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
Możesz potokować ciąg zawierający komunikat o błędzie, aby Write-Error
.
Dane wyjściowe
Error object
Write-Error
zapisuje tylko w strumieniu błędów. Nie zwraca żadnych obiektów.