首页 > 其他 > 详细

Cmdlet开发与学习(一)

时间:2014-05-09 07:37:39      阅读:448      评论:0      收藏:0      [点我收藏+]

       Windows Powershell和cmdlet的学习是一个积累的过程。最近在学习编写自定义的Cmdlet封装一些命令,以此记录自己的学习心得。

       自定义cmdlet的实现大致可以分为以下几步:

       1.将.Net类声明为cmdlet

       2.继承自类PSCmdlet或者Cmdlet

       3.定义属性,即cmdlet参数对象

       4.重写cmdlet记录处理的方法

       5.流程或诊断信息输出,错误以及异常处理

       6.PSSnapIn和Module

 

       1.将.Net类声明为cmdlet

       要将.Net类声明为cmdlet,使用CmdletAttribute设置该类的属性,而CmdletAttribute是所有cmdlet都必须添加的Attribute。

       要使用CmdletAttribute,就必须引用dll:System.Management.Automation.dll。正常情况下,在程序集里查询是找不到的,需要到GAC中查到。一般情况下,路径为:C:\Windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll。 添加Using之后的代码显示为:      

bubuko.com,布布扣
1     [Cmdlet(VerbsCommon.Get,"SQLServerBackupFile")]
2     public class GetSQLServerBackup
3     {
4     }
bubuko.com,布布扣

       在这里需要强调的是,cmdlet的命名规则遵循动名词的形式,即动词-名词的结构。不仅如此,为了更好的规范和统一cmdlet,MS建议自定义cmdlet的动词都是来自于它提供的Verb类(VerbsCommon, VerbsCommunications, VerbsData, VerbsDiagnostic, VerbsLifeCycle, VerbsSecurity, VerbsOther)中定义的词,并且最好不要使用同义词。而名词部分,则最好是避免大众化,和其它命令混淆,一般是详细描述主要功能的组合词语。整个动名词的结构采用Pascal大小写。当然,CmdletAttribute的参数不仅仅如此,更为详尽的解析将在后文中描述。

 

        2.继承自类PSCmdlet或者Cmdlet

        Windows PowerShell 支持从以下两个不同基类派生的 Cmdlet:PSCmdlet 和 Cmdlet。

        从 PSCmdlet 派生的 Cmdlet 允许您访问 Windows PowerShell 运行时。它允许调用其他脚本,并允许访问 Windows PowerShell 提供程序以使用会话状态。PSCmdlet 还提供对 Windows PowerShell 日志记录功能的访问权,不过此访问会导致规模变大,并且会让您依赖 Windows PowerShell 运行时。

        从 Cmdlet 类派生的 Cmdlet 只提供对 Windows PowerShell 运行时的最少依赖关系。其优点是:由于具有较少的功能,这些 Cmdlet 会小一些,并且也将减小因 Windows PowerShell 随着时间推移发生变化而引起问题的可能性。此外,可以很轻松地将这些 Cmdlet 包含到没有 Windows PowerShell 运行时的其他应用程序中。

        以上是网上对PSCmdlet和Cmdlet的区别对比,大致意思如此。我选择了PSCmdlet最为基类。

        

bubuko.com,布布扣
1     [Cmdlet(VerbsCommon.Get,"SQLServerBackupFile")]
2     public class GetSQLServerBackup : PSCmdlet
3     {
4     }
bubuko.com,布布扣

        

 

Cmdlet开发与学习(一),布布扣,bubuko.com

Cmdlet开发与学习(一)

原文:http://www.cnblogs.com/ByronsHome/p/3717913.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!