一、编写代码
1. 在Visual Studio中新建一个Class Library类型的Project,命名为Cmdlet1;
2.添加引用:System.Management.Automation和System.Configuration.Install;注System.Management.Automation位于目录"C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\<version>"
3. 实现如下的Cmdlet类型:
[Cmdlet(VerbsCommon.Get, "SayHello")]
public class GetHello : PSCmdlet
{
protected override void ProcessRecord()
{
WriteObject("Hello Cmdlet");
}
}
4. 实现如下的SnapIn类型:
[RunInstaller(true)]
public class HelloCmdletSnapIn: PSSnapIn
{
public override string Name
{
get { return "HelloCmdlet"; }
}
public override string Vendor
{
get { return "Harry He"; }
}
public override string Description
{
get { return "My first cmdlet"; }
}
}
5. 编译
二、在PowerShell中注册、运行
1. 以管理员权限运行PowerShell;
2. set-alias installutil C:\windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe
3. set-location 'C:\Users\harryh\Documents\visual studio 2012\Projects\TestCmdlet\Cmdlet1\bin\Debug'(set-location的参数为前面project的实际路径)
4. installutil .\Cmdlet1.dll
5. get-pssnapin -registered。我们写的SnapIn应该在输出中列出,如下所示:
Name : HelloCmdlet
PSVersion : 4.0
Description : My first cmdlet
6. add-pssnapin HelloCmdlet
7. SayHello,我们在Cmdlet定义的行为得到执行,即输出Hello Cmdlet