Deklarace atributu Cmdlet
Atribut rutiny identifikuje třídu rozhraní Microsoft .NET Framework jako rutinu a určuje sloveso a podstatné jméno použité k vyvolání rutiny.
Syntaxe
[Cmdlet("verbName", "nounName")]
[Cmdlet("verbName", "nounName", Named Parameters...)]
Parametry
VerbName
(System.String) Povinné. Určuje příkaz rutiny. Tento příkaz určuje akci prováděnou rutinou. Další informace o schválených příkazech rutin najdete v tématu Názvy příkazů rutin a požadované pokyny pro vývoj.
NounName
(System.String) Povinné. Určuje podstatné jméno rutiny. Toto podstatné jméno určuje prostředek, na který rutina působí. Další informace o podstatných jmenách rutin naleznete v tématu Deklarace rutiny a důrazně doporučujeme pokyny pro vývoj.
SupportsShouldProcess
(System.Boolean) Volitelný pojmenovaný parametr.
True
označuje, že rutina podporuje volání metody System.Management.Automation.Cmdlet.ShouldProcess, která poskytuje rutině způsob, jak uživatele vyzvat před provedením akce, která změní systém.
False
, výchozí hodnota označuje, že rutina nepodporuje volání metody System.Management.Automation.Cmdlet.ShouldProcess. Další informace o žádostech o potvrzení najdete v tématu Žádost o potvrzení.
ConfirmImpact
(System.Management.Automation.ConfirmImpact) Volitelný pojmenovaný parametr. Určuje, kdy má být akce rutiny potvrzena voláním metody System.Management.Automation.Cmdlet.ShouldProcess.
System.Management.Automation.Cmdlet.ShouldProcess bude volána pouze v případě, že se hodnota ConfirmImpact rutiny (ve výchozím nastavení, Střední) rovná nebo větší než hodnota proměnné $ConfirmPreference
. Tento parametr by měl být zadán pouze v případě, že je zadán parametr SupportsShouldProcess
.
DefaultParameterSetName
(System.String) Volitelný pojmenovaný parametr. Určuje výchozí sadu parametrů, kterou se modul runtime Windows PowerShellu pokusí použít, pokud nemůže určit, který parametr se má použít. Všimněte si, že tuto situaci lze eliminovat tím, že jedinečný parametr každého parametru nastaví povinný parametr.
Existuje jeden případ, kdy Windows PowerShell nemůže použít výchozí sadu parametrů, i když je zadán výchozí název sady parametrů. Modul runtime Prostředí Windows PowerShell nemůže rozlišovat mezi sadami parametrů výhradně na základě typu objektu. Pokud máte například jednu sadu parametrů, která přebírá řetězec jako cestu k souboru, a druhá sada, která přebírá FileInfo objekt přímo, Windows PowerShell nemůže určit, který parametr se má použít na základě hodnot předaných rutině, ani nepoužívá výchozí sadu parametrů. V tomto případě, i když zadáte výchozí název sady parametrů, Windows PowerShell vyvolá nejednoznačné chybové hlášení sady parametrů.
SupportsTransactions
(System.Boolean) Volitelný pojmenovaný parametr.
True
označuje, že rutinu lze použít v rámci transakce. Po zadání True
modul runtime Prostředí Windows PowerShell přidá parametr UseTransaction
do seznamu parametrů rutiny.
False
, výchozí hodnota označuje, že rutinu nelze použít v rámci transakce.
Poznámky
Sloveso a podstatné jméno se společně používají k identifikaci registrované rutiny a k vyvolání rutiny ve skriptu.
Při vyvolání rutiny z konzoly Windows PowerShellu se příkaz podobá následujícímu příkazu:
verbName-NounName
- Všechny rutiny, které mění prostředky mimo Prostředí Windows PowerShell, by měly obsahovat klíčové slovo
SupportsShouldProcess
při deklaraci atributu Rutina, což rutině umožňuje volat System.Management.Automation.Cmdlet.ShouldProcess metodu předtím, než rutina provede svou akci. Pokud volání System.Management.Automation.Cmdlet.ShouldProcess vrátífalse
, akce by neměla být provedena. Další informace o žádostech o potvrzení vygenerovaných voláním System.Management.Automation.Cmdlet.ShouldProces s najdete v tématu Žádost o potvrzení.
Parametry rutin Confirm
a WhatIf
jsou dostupné jenom pro rutiny, které podporují System.Management.Automation.Cmdlet.ShouldProcess volání.
Příklad
Následující definice třídy používá atribut rutiny k identifikaci třídy .NET Framework pro Get-Proc rutina, která načte informace o procesech spuštěných v místním počítači.
[Cmdlet(VerbsCommon.Get, "Proc")]
public class GetProcCommand : Cmdlet
Další informace o rutině Get-Proc naleznete v kurzuGetProc .