温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PowerShell 添加 自定义的ScriptProperty 属性

发布时间:2020-07-03 16:18:03 来源:网络 阅读:587 作者:beanxyz 栏目:开发技术

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

并且生成了对应的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的文件,如下所示,注意对象名字要匹配。另存在我的模块目录下。

<?xml version="1.0" encoding="utf-8" ?>
<Types>
<Type>
<Name>Yuan.SystemInfo</Name>
<Members>
<ScriptMethod>
<Name>CanPing</Name>
<Script>
Test-Connection -ComputerName $this.ComputerName -Quiet
</Script>
</ScriptMethod>
</Members>
</Type>
</Types>

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

PowerShell 添加 自定义的ScriptProperty 属性


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

PowerShell 添加 自定义的ScriptProperty 属性

测试一下 成功

PowerShell 添加 自定义的ScriptProperty 属性


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

PowerShell 添加 自定义的ScriptProperty 属性


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

PowerShell 添加 自定义的ScriptProperty 属性


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

PowerShell 添加 自定义的ScriptProperty 属性


参考资料:

《Learn PowerShell ToolMaking in a month of lunches》

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI