PowerShell添加自定义的ScriptProperty属性-创新互联

之前的博客豆子创建了一个自定义的PowerShell对象 http://beanxyz.blog.51cto.com/5570417/1772977

从事托管服务器,服务器租用,云主机,虚拟空间,域名注册,CDN,网络代维等服务。

并且生成了对应的manifest文件和模块 http://beanxyz.blog.51cto.com/5570417/1773382

如果想给自己定义的这个对象添加新的属性类型,可以创建一个新的ps1xml文件。这个文件的模板可以参考PowerShell自带的types.ps1xml 文件。这个默认文件位于$pshome下面。

PowerShell 添加 自定义的ScriptProperty 属性

现在来看个例子如何添加。

比如说,我想添加一个scriptmethod的属性 Canping(),这个属性返回一个bool值,如果能ping通为真,不能ping通为假。

首先加载我的模块

PowerShell 添加 自定义的ScriptProperty 属性

我之前已经定义了一个function,这个function会返回一系列计算机的信息。

PowerShell 添加 自定义的ScriptProperty 属性

简单测试一下

PowerShell 添加 自定义的ScriptProperty 属性

看看类型,可以看见他的TypeName是 Yuan.systeminfo,这个不是默认的PSCustomObject类型,而是我自己定义的。他当前的属性并没有canping()这个scriptmethodproperty类型。

PowerShell 添加 自定义的ScriptProperty 属性

首先来创建一个ping.ps1xml的文件,如下所示,注意对象名字要匹配。另存在我的模块目录下。




Yuan.SystemInfo


CanPing




然后手动更新一下typedate的文件

PowerShell 添加 自定义的ScriptProperty 属性

重新加载一下模块,可以看见这个function已经有新的属性了

PowerShell 添加 自定义的ScriptProperty 属性

测试一下 成功

PowerShell 添加 自定义的ScriptProperty 属性

多来几个计算机名测试一下

PowerShell 添加 自定义的ScriptProperty 属性

最后把更新一下我的manifest文件,添加对应的typetoprocess路径

PowerShell 添加 自定义的ScriptProperty 属性

重新加载模块之后工作正常。

PowerShell 添加 自定义的ScriptProperty 属性

参考资料:

《Learn PowerShell ToolMaking in a month of lunches》

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:PowerShell添加自定义的ScriptProperty属性-创新互联
URL网址:http://azwzsj.com/article/dpshdj.html