Deklaration av attributet Cmdlet
Cmdlet-attributet identifierar en Microsoft .NET Framework-klass som en cmdlet och anger verbet och substantivet som används för att anropa cmdleten.
Syntax
[Cmdlet("verbName", "nounName")]
[Cmdlet("verbName", "nounName", Named Parameters...)]
Parameterar
VerbName
(System.String) krävs. Anger cmdlet-verbet. Det här verbet anger den åtgärd som cmdleten vidtar. Mer information om godkända cmdlet-verb finns i Cmdlet Verb Names and Required Development Guidelines.
NounName
(System.String) krävs. Anger cmdletens substantiv. Det här substantivet anger den resurs som cmdleten agerar på. Mer information om cmdlet-substantiv finns i Cmdlet-deklaration och starkt uppmuntrade utvecklingsriktlinjer.
SupportsShouldProcess
(System.Boolean) Valfri namngiven parameter.
True
anger att cmdleten stöder anrop till metoden System.Management.Automation.Cmdlet.ShouldProcess, vilket ger cmdleten ett sätt att fråga användaren innan en åtgärd som ändrar systemet utförs.
False
anger standardvärdet att cmdleten inte stöder anrop till metoden System.Management.Automation.Cmdlet.ShouldProcess. Mer information om bekräftelsebegäranden finns i Begära bekräftelse.
ConfirmImpact
(System.Management.Automation.ConfirmImpact) Valfri namngiven parameter. Anger när åtgärden för cmdleten ska bekräftas av ett anrop till metoden System.Management.Automation.Cmdlet.ShouldProcess.
System.Management.Automation.Cmdlet.ShouldProcess anropas endast när ConfirmImpact-värdet för cmdleten (som standard Medel) är lika med eller större än värdet för variabeln $ConfirmPreference
. Den här parametern bör endast anges när parametern SupportsShouldProcess
anges.
DefaultParameterSetName
(System.String) Valfri namngiven parameter. Anger standardparameteruppsättningen som Windows PowerShell-körningen försöker använda när den inte kan avgöra vilken parameter som ska användas. Observera att den här situationen kan elimineras genom att göra den unika parametern för varje parameter till en obligatorisk parameter.
Det finns ett fall där Windows PowerShell inte kan använda standardparameteruppsättningen även om ett standardnamn för parameteruppsättningen har angetts. Windows PowerShell-körningen kan inte skilja mellan parameteruppsättningar baserat enbart på objekttyp. Om du till exempel har en parameteruppsättning som tar en sträng som filsökväg och en annan uppsättning som tar ett FileInfo- objekt direkt, kan Windows PowerShell inte avgöra vilken parameter som ska användas baserat på de värden som skickas till cmdleten, och den använder inte heller standardparameteruppsättningen. I det här fallet, även om du anger ett standardnamn för parameteruppsättningen, genererar Windows PowerShell ett felmeddelande om tvetydiga parameteruppsättningar.
SupportsTransactions
(System.Boolean) Valfri namngiven parameter.
True
anger att cmdleten kan användas i en transaktion. När True
anges lägger Windows PowerShell-körningen till parametern UseTransaction
i parameterlistan för cmdleten.
False
anger standardvärdet att cmdleten inte kan användas i en transaktion.
Anmärkningar
Tillsammans används verbet och substantiven för att identifiera din registrerade cmdlet och för att anropa din cmdlet i ett skript.
När cmdleten anropas från Windows PowerShell-konsolen liknar kommandot följande kommando:
VerbName-NounName
- Alla cmdletar som ändrar resurser utanför Windows PowerShell bör innehålla nyckelordet
SupportsShouldProcess
när cmdlet-attributet deklareras, vilket gör att cmdleten kan anropa metoden System.Management.Automation.Cmdlet.ShouldProcess innan cmdleten utför åtgärden. Om System.Management.Automation.Cmdlet.ShouldProcess-anropet returnerarfalse
bör åtgärden inte vidtas. Mer information om bekräftelsebegäranden som genereras av System.Management.Automation.Cmdlet.ShouldProcess-anrop finns i Begära bekräftelse.
Cmdlet-parametrarna Confirm
och WhatIf
är endast tillgängliga för cmdletar som stöder System.Management.Automation.Cmdlet.ShouldProcess-anrop.
Exempel
Följande klassdefinition använder cmdlet-attributet för att identifiera .NET Framework-klassen för en Get-Proc-cmdlet som hämtar information om de processer som körs på den lokala datorn.
[Cmdlet(VerbsCommon.Get, "Proc")]
public class GetProcCommand : Cmdlet
Mer information om cmdleten Get-Proc finns i GetProc Tutorial.