Powershell 自定义输出列,两个例子

简介:

昨天和今天因为工作需要写了两个很简单的脚本,都需要自定义输出的列,需要用到 select @{name="名字”expression={表达式}}这种方式自定义。


第一个例子是boss让我输出一个简单的报表,需要列出悉尼除了系统账号以外的所有用户,包括他们的名字,手机,座机,所在的OU,公司等等信息。


这个基本的命令很简单,get-aduser就能实现,几个过滤的条件稍微思考了一下。


  1. 所有悉尼用户,可以用 -searchbase限制搜索的OU范围;

  2. 排除系统账号,因为所有的系统账号都位于同一个OU下面,那么搜索的时候过滤掉这个OU就行,例如

        get-aduser -filter * | where-object{$_.disginuishedname -notlike '*XXXX*‘}

  1. 各种需要查看的属性可以用-properties 列出

  2. 用户所在的OU本身不是一个属性,不过可以列出用户的caonicalname 属性,例如 /domain/ouname/username 的格式,然后通过split分隔符’/‘来处理

  3. 可以通过{name="xxx"';express={XXX}}的格式来自定义输出的表格header

  4. 最后导出到csv文件保存


1
get-aduser  - Filter  * -SearchBase  "ou=sydney,dc=omnicom,dc=com,dc=au"  -Properties name,mobile,title,ipphone, canonicalname,company,office |?{ $_ .distinguishedname  -notlike  '*Sydney Non-Replication*' }| select Name, Title, Mobile,@{name= "Extension" ;expression={ $_ .ipphone}},@{name= "OU" ;expression={ $temp =( $_ .canonicalname -split  '/' ); $temp [ $temp .count-2]}}, company, office | sort name|  Export-Csv  c:\temp\users.csv


gridview查看一下结果

wKiom1WsaA7zks9WAAJwQ5FrkVo212.jpg


第二个例子是因为windows 2003服务器上周寿终正寝了,我需要导出AD里面windows2000和2003的记录,看看是否还在使用。实现方式和上面类似,filter过滤操作系统类型,然后select里面表达式自定义status,test-connection发送一个icmp包进行判断,根据结果返回值,同时输出dns cache的ip地址


1
2
3
Get-ADComputer  - Filter {(operatingsystem  -like  "*2000*" -or  (operatingsystem  -like  "*2003" )} -Properties operatingsystem,ipv4address |
  sort operatingsystem| select name, operatingsystem, 
@{name= "status" ;expression={ if ( Test-Connection  -ComputerName  $_ .name -count 1 -quiet ){ return  "Connected" } else { return  "Disconnected" }}}, ipv4address

wKiom1WsZzPBjycnAAKCLJfEj5U870.jpg










本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1675600,如需转载请自行联系原作者
目录
相关文章
|
8月前
|
Shell
Shell 脚本输出命令结果保持原格式,保留换行
Shell 脚本输出命令结果保持原格式,保留换行
130 0
|
17天前
|
人工智能 机器人 Shell
【shell】shell数组的操作(定义、索引、长度、获取、删除、修改、拼接)
【shell】shell数组的操作(定义、索引、长度、获取、删除、修改、拼接)
|
10月前
|
Python
Python应用专题 | 17:根据子字符列表过滤掉给定列表
根据子字符列表过滤掉给定列表,从而实现数据的筛查或者去除
|
12月前
|
安全
【最重要的 G 代码命令列表】
【最重要的 G 代码命令列表】
421 0
|
PyTorch 算法框架/工具 Python
jupyter 输出向量自动省略了中间的值,如何查看完整的向量值
Jupyter 默认情况下会根据向量的长度来自动省略中间的值,以便在输出时能够更好地适应屏幕大小。如果想要查看完整的向量值,可以通过以下两种方式实现: 1. 使用 print() 函数显示完整的向量内容。这种方法适用于任何大小的向量,但是需要显式调用 print() 函数来输出向量。Jupyter 默认情况下会根据张量的长度来自动省略中间的值,以便在输出时能够更好地适应屏幕大小。如果想要查看完整的张量内容,可以通过以下两种方式实现: 1. 使用 print() 函数显示完整的张量内容。这种方法适用于任何大小的张量,但是需要显式调用 print() 函数来输出张量。
875 0
|
Python
python自定义输入名字并打印-学习笔记10-输入函数
python自定义输入名字并打印-学习笔记10-输入函数
199 0
python自定义输入名字并打印-学习笔记10-输入函数
|
Python
Python输出当前代码信息:文件,行号,函数名
Python输出当前代码信息:文件,行号,函数名
116 0
Python输出当前代码信息:文件,行号,函数名
|
Shell Android开发
终端中查看某个app的logcat输出,支持关键字筛选,支持输出到文件
终端中查看某个app的logcat输出,支持关键字筛选,支持输出到文件
|
Shell
shell脚本将文本每行内容作为数组
shell脚本将文本每行内容作为数组
284 0
|
Shell
Shell数组变量定义-获取-拼接-删除
Shell数组变量定义-获取-拼接-删除
114 0