如何写PowerShell Snap-in

在PowerShell中,有相当多的命令是通过Snap-in来注册的。PowerShell脚本的功能很强大,但有时候我们需要自己定义一些脚步来应付特殊的场合。比如我们想要做UI自动化,就会发现PowerShell并没有提供足够的命令给我们调用,而专门写一个C#程序也可以,不过扩展性不够强,那么我们可以把如何获取UI的各个元素都写成一个cmdlet,那么就有很好的扩展性了。在MSDN里有许多相关的PowerShell技术的讲解,我这里引用一个知识点,就是如何写PowerShell Snap-in, 现参考: http://msdn.microsoft.com/en-us/library/ms714453(VS.85).aspx,写一个简单的snap-in:
 
I、准备工作:

1.       创建一个“Class Library”。

2.       在解决方案资源管理器, 增加两个引用System.Configuration.InstallSystem.Management.Automation。

4.       编写CS文件并编译,到.\obj\Debug 拷贝CNSytemCenterSnapIn.dllCNSytemCenterSnapIn.pdb 到“C:\”。

5.       打开CMD,注册CNSytemCenterSnapIn.dll。

>cd “C:\Windows\Microsoft.NET\Framework64\v2.0.50727”

>InstallUtil.exe “CNSytemCenterSnapIn.dll

 
II.、C#代码:

using

System;

using

System.Collections.Generic;

using

System.Linq;

using

System.Text;

//add some references

using

System.Management.Automation;

using

System.ComponentModel;

namespace

CNSytemCenterSayHelloWorld

{

  [

Cmdlet ( "Say" , "HelloWorld" )]

//

public class ExecuteShell : Cmdlet

{

  private string argus;

  [

Parameter (Position = 0)]

  [

ValidateNotNullOrEmpty ]

public string Args

{

  get { return argus; }

  set { argus = value ; }

}

protected override void ProcessRecord()

{

  if (argus != null && argus.Length > 0)

  {

    Console .WriteLine( "Hello World:" + argus);

  }

}

}

[

RunInstaller ( true )]

public class CNSytemCenterHelloWord : PSSnapIn

{

public CNSytemCenterHelloWord()

:

base ()

{

}

// 确定加载PSsnapIn的名字,在Add-PSSnapin时会用到.

public override string Name

{

  get { return "CNSytemCenterSayHelloWorld" ; }

}

public override string Vendor

{

  get { return "CNSytemCenter" ; }

}

public override string VendorResource

{

  get

  {

    return "CNSytemCenterSayHelloWorld,CNSytemCenter" ;

  }

}

public override string Description

{

  get { return "This is a demo, design by CNSytemCenter" ; }

}

}

}

 

III、使用:

打开PowerShell:

>Add-PSsnapIn CNSytemCenterSnapIn

>Say-HelloWord “CNBlogs”

 

 

转载于:https://www.cnblogs.com/CNSytemCenter/archive/2009/12/31/1636955.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值