【Powershell】【Add-member】创建powershell对象

    通过数组我们可以将许多对象组成集合,通过hash表则可以创建一个具有名称和值得索引关系,而当我们针对一个具有多个属性的对象进行管理,甚至完全新建一个对象时,这些方法就有些不足了。为此我们介绍Add-member,从学习的角度,你所要做的是get-help,了解一个命令的使用方法,但是在使用中,却赋予了一个改变增加当前对象属性或者创建一个赋予了多个属性的对象。

 

一、对现有对象进行修改

    在我们日常的工作中,经常会用命令去做检查,但是这个时候如果我需要附加一个时间属性,让我在得到检查结果的同时知道我是什么时间去执行的检查,该怎么做呢?


get-service bits为例,先介绍add-member最常用的两种方法:

 

  1. 为对象添加文本属性

wKioL1XSCVfxgKzUAAGIG4AlwGc554.jpg

2. 为对象添加脚本属性

wKiom1XSB0yjK405AAFzj8gKevQ351.jpg


    通过上面两种方法获得的效果都一样,我们在获取bits服务的运行状态的同时,附加进去了时间的信息,只不过一种可读性相对较高,一种更灵活。

 

    我们已经看到add-member在对对象的修改上具有很强大的功能,他可以根据我们的需求对现有对象进行改造,同时,也引出了add-member常见的几个参数:

  • Membertype 最关键的属性,该属性的可配置非常多

  • Scriptproperty,通过脚本或者命令去配置对象的值;

  • Noteproperty,直接配置对象的文本属性;

  • AliasProperty,可以为现有的属性定义一个别名;

  • 还有其他很多属性,实际也很难遇到就不一一赘述;

  • Name,新定义属性的显示名称;

  • Value,新定义属性的值;

  • Inputobject,需要进行修改的初始化对象,也可以通过传递符来省略该参数;

  • Force,如果对象中已经包含该属性,则对其进行覆盖.


二、新建PS对象

    Add-member能够很好的丰满对象的属性来达到我们的需求,然而毕竟只是对单个对象的修改,通过简单的命令组合,我们可以让多个对象按照我们所定义的方式来组合成一个新的包含多个成员的对象,譬如我需要获取一个文件夹大小的动态变化来确认我磁盘的使用状态,该怎么做呢?


    如果能生成如下表所示的文档则是最完美的了,这个输出文档以所需监控文件夹的路径或者名称为标题,以时间为纵坐标来记录文件夹大小。

wKioL1XSCVfATn-dAAI93OzqeWA197.jpg


借助于add-member创建对象的功能,我们可以很简洁的完成需求:

1. 创建一个空对象$temp,依次以时间、所需监控的文件夹作为属性名称,并将其赋值给$temp;

2. 定义一个数组对象$output,因为$temp只能存储一个对象,我们将$temp添加到$output中;

3. 循环获取$temp的值,并将其添加进$output;

4. 输入$Output.


脚本示范如下:

wKiom1XSCTHgRoddAAMGGJqJwfI448.jpg

好了,关于add-member的介绍就到抛出这些引子,微软官方对add-member的介绍可以参考如下链接:

https://technet.microsoft.com/zh-CN/library/dd347695.aspx

 

灵活的运用add-member、数组和hash表能够让我们的对象输出非常简洁漂亮。

 

任何疑问,欢迎沟通~



你可能感兴趣的:(对象,powershell,add-member)