Windows PowerShell Visual Studio 2005 Templatesの導入 - コマンドレットの開発(2) - で、コマンドレット属性の設定方法について説明しました。
簡単におさらいすると
public class ~ の1行上に
[Cmdlet(VerbsCommon.Get, "IPFromHost", SuppoertShouldProcess = true)]
と記述することでコマンドレット名称が決定します。
この場合は、Get-IPFromHost となります。
コマンドレット名称の動詞部分を決定するのに、VerbsCommon列挙体を指定しましたが、実はこのほかにも使用可能な列挙体があります。
使用可能な列挙体はVertbsCommonを含め、下記のとおりです。
列挙体 |
メンバ |
VerbsCommon |
Add, Clear, Copy, Get, Join, Lock, Move, New, Remove, Rename, Select, Set, Split, Unlock |
VerbsCommunication |
Connect, Disconnect, Read, Receive, Send, Write |
VerbsData |
Backup, Checkpoint, Compare, Convert, ConvertFrom, ConvertTo, Dismount, Export, Import, Initialize, Limit, Merge, Mount, Restore, Update, Out |
VerbsDiagnostic |
Debug, Measure, Ping, Resolve, Test, Trace |
LifecycleVerbs |
Disable, Enable, Install, Restart, Resume, Start, Stop, Suspend, Uninstall |
Security Verbs |
Block, Grant, Revoke, Unblock |
各列挙体のメンバ詳細のリンク先は下記の通りです。(英語のみです)
VerbsCommon
http://msdn2.microsoft.com/en-us/library/system.management.automation.verbscommon_members(VS.85).aspx
VerbsCommunication
http://msdn2.microsoft.com/en-us/library/system.management.automation.verbscommunications_members(VS.85).aspx
VerbsDiagnostics
http://msdn2.microsoft.com/en-us/library/system.management.automation.verbsdiagnostic_members(VS.85).aspx
VerbsLifecycle
http://msdn2.microsoft.com/en-us/library/system.management.automation.verbslifecycle_members(VS.85).asp
VerbsSecurity
http://msdn2.microsoft.com/en-us/library/system.management.automation.verbssecurity_members(VS.85).aspx
上記メンバに、自分が指定したい動詞がない場合どうするか
ですが
実はこのCmdlet属性の第1引数は、よく見るとstring型となっています。
なので、たとえば Insert-Data というコマンドレット名にしたい場合は
[Cmdlet("Insert", "Data", SuppoertShouldProcess = true)]
Replace-Contentというコマンドレット名にしたい場合は
[Cmdlet("Replace", "Content", SuppoertShouldProcess = true)]
のように記述すればOKということになります。
ただ、なるべくなら事前に準備されている動詞を使用することをお勧めします。