Write-Error
Hiermee schrijft u een object naar de foutstroom.
Syntaxis
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
De Write-Error
cmdlet declareert een niet-afsluitfout. Standaard worden fouten in de foutstroom verzonden naar het hostprogramma dat moet worden weergegeven, samen met uitvoer.
Als u een niet-afsluitfout wilt schrijven, voert u een foutberichttekenreeks, een ErrorRecord-object of een uitzonderingsobject in. Gebruik de andere parameters om Write-Error
de foutrecord te vullen.
Niet-afsluitfouten schrijven een fout naar de foutstroom, maar ze stoppen de verwerking van opdrachten niet. Als een niet-afsluitfout wordt gedeclareerd voor één item in een verzameling invoeritems, blijft de opdracht de andere items in de verzameling verwerken.
Als u een afsluitfout wilt declareren, gebruikt u het Throw
trefwoord.
Zie about_Throw voor meer informatie.
Voorbeelden
Voorbeeld 1: Een fout schrijven voor RegistryKey-object
Get-ChildItem | ForEach-Object {
if ($_.GetType().ToString() -eq "Microsoft.Win32.RegistryKey")
{
Write-Error "Invalid object" -ErrorId B1 -TargetObject $_
}
else
{
$_
}
}
Met deze opdracht wordt een niet-afsluitfout declareren wanneer de Get-ChildItem
cmdlet een Microsoft.Win32.RegistryKey
object retourneert, zoals de objecten in de HKLM:
of HKCU:
stations van de PowerShell-registerprovider.
Voorbeeld 2: Een foutbericht naar de console schrijven
Write-Error "Access denied."
Met deze opdracht wordt een niet-afsluitfout gede declareert en wordt de fout 'Toegang geweigerd' geschreven. De opdracht gebruikt de parameter Message om het bericht op te geven, maar laat de optionele naam van de message-parameter weg.
Voorbeeld 3: Schrijf een fout naar de console en geef de categorie op
Write-Error -Message "Error: Too many input values." -Category InvalidArgument
Met deze opdracht wordt een niet-afsluitfout declareren en wordt een foutcategorie opgegeven.
Voorbeeld 4: Een fout schrijven met behulp van een uitzonderingsobject
$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."
Met deze opdracht wordt een uitzonderingsobject gebruikt om een niet-afsluitfout te declareren.
De eerste opdracht maakt gebruik van een hash-tabel om het object System.Exception te maken. Hiermee wordt het uitzonderingsobject opgeslagen in de $E
variabele. U kunt een hash-tabel gebruiken om elk object van een type te maken dat een null-constructor heeft.
De tweede opdracht gebruikt de Write-Error
cmdlet om een niet-afsluitfout te declareren. De waarde van de parameter Uitzondering is het object Exception in de $E
variabele.
Parameters
-Category
Hiermee geeft u de categorie van de fout. De standaardwaarde is NotSpecified. De aanvaardbare waarden voor deze parameter zijn:
- Niet opgegeven
- OpenError
- CloseError
- DeviceError
- DeadlockDetected
- InvalidArgument
- InvalidData
- InvalidOperation
- InvalidResult
- InvalidType
- MetadataError
- Niet geïmplementeerd
- Niet geïnstalleerd
- ObjectNotFound
- OperationStopped
- OperationTimeout
- SyntaxIsfout
- ParserError
- PermissionDenied
- ResourceBusy
- ResourceExists
- ResourceUnavailable
- ReadError
- WriteError
- FromStdErr
- SecurityError
- ProtocolError
- ConnectionError
- AuthenticationError
- LimitsExceeded
- QuotaExceeded
- NotEnabled
Zie De opsomming ErrorCategory voor informatie over de foutcategorieën.
Type: | ErrorCategory |
Geaccepteerde waarden: | 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 |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-CategoryActivity
Hiermee geeft u de actie op die de fout heeft veroorzaakt.
Type: | String |
Aliassen: | Activity |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-CategoryReason
Hiermee geeft u op hoe of waarom de activiteit de fout heeft veroorzaakt.
Type: | String |
Aliassen: | Reason |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-CategoryTargetName
Hiermee geeft u de naam op van het object dat werd verwerkt toen de fout optrad.
Type: | String |
Aliassen: | TargetName |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-CategoryTargetType
Hiermee geeft u het type van het object dat werd verwerkt toen de fout optrad.
Type: | String |
Aliassen: | TargetType |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-ErrorId
Hiermee geeft u een id-tekenreeks op om de fout te identificeren. De tekenreeks moet uniek zijn voor de fout.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-ErrorRecord
Hiermee geeft u een foutrecordobject op dat de fout vertegenwoordigt. Gebruik de eigenschappen van het object om de fout te beschrijven.
Als u een foutrecordobject wilt maken, gebruikt u de New-Object
cmdlet of haalt u een foutrecordobject op uit de matrix in de $Error
automatische variabele.
Type: | ErrorRecord |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Exception
Hiermee geeft u een uitzonderingsobject op dat de fout aangeeft. Gebruik de eigenschappen van het object om de fout te beschrijven.
Als u een uitzonderingsobject wilt maken, gebruikt u een hash-tabel of gebruikt u de New-Object
cmdlet.
Type: | Exception |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Message
Hiermee geeft u de berichttekst van de fout. Als de tekst spaties of speciale tekens bevat, plaatst u deze tussen aanhalingstekens. U kunt ook een berichttekenreeks doorsturen naar Write-Error
.
Type: | String |
Aliassen: | Msg |
Position: | 0 |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-RecommendedAction
Hiermee geeft u de actie op die de gebruiker moet ondernemen om de fout op te lossen of te voorkomen.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-TargetObject
Hiermee geeft u het object op dat werd verwerkt toen de fout optrad. Voer het object, een variabele in die het object bevat of een opdracht waarmee het object wordt opgehaald.
Type: | Object |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt een tekenreeks met een foutbericht doorsturen naar deze cmdlet.
Uitvoerwaarden
None
Deze cmdlet retourneert geen uitvoer. Het schrijft alleen naar de stroom van het foutbericht.
Notities
Write-Error
wijzigt de waarde van de $?
automatische variabele niet, daarom wordt er geen afsluitfoutvoorwaarde weergegeven. Als u een afsluitfout wilt signaleren, gebruikt u de methode $PSCmdlet.WriteError().