Powershell 自定义输出列,两个例子
昨天和今天因为工作需要写了两个很简单的脚本,都需要自定义输出的列,需要用到 select @{name="名字”expression={表达式}}这种方式自定义。
第一个例子是boss让我输出一个简单的报表,需要列出悉尼除了系统账号以外的所有用户,包括他们的名字,手机,座机,所在的OU,公司等等信息。
这个基本的命令很简单,get-aduser就能实现,几个过滤的条件稍微思考了一下。
所有悉尼用户,可以用 -searchbase限制搜索的OU范围;
排除系统账号,因为所有的系统账号都位于同一个OU下面,那么搜索的时候过滤掉这个OU就行,例如
get-aduser -filter * | where-object{$_.disginuishedname -notlike '*XXXX*‘}
各种需要查看的属性可以用-properties 列出
用户所在的OU本身不是一个属性,不过可以列出用户的caonicalname 属性,例如 /domain/ouname/username 的格式,然后通过split分隔符’/‘来处理
可以通过{name="xxx"';express={XXX}}的格式来自定义输出的表格header
最后导出到csv文件保存
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查看一下结果
第二个例子是因为windows 2003服务器上周寿终正寝了,我需要导出AD里面windows2000和2003的记录,看看是否还在使用。实现方式和上面类似,filter过滤操作系统类型,然后select里面表达式自定义status,test-connection发送一个icmp包进行判断,根据结果返回值,同时输出dns cache的ip地址
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
- 关于控制台程序输出重定向到IDE两个例子 之一 http://blog.chinaunix.net/u/26972/showart_236893.html
- 两个非常简单的输出随机数的例子
- 截取字符串。输入字符串和按照多大字节进行截取,输出结果:按照字节截取的字符串。注意:汉字占两个字节,所以输入的汉字不能截取为半个汉字!!!例子:输入“我ABC爱北京”,字节输入6,结果为:“我ABC”
- 自定义实现InputFormat、OutputFormat、输出到多个文件目录中去、hadoop1.x api写单词计数的例子、运行时接收命令行参数,代码例子
- PowerShell中使用Out-String命令把对象转换成字符串输出的例子
- 4.编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- Powershell中创建自定义对象例子
- PowerShell中使用Get-Date获取日期时间并格式化输出的例子
- 关于android自定义日期输出格式的例子
- 题目:求两个正整数的最大公约数和最小公倍数。 基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出。 提高要求:1.三种以上算法解决两个正整数最大公约数
- PowerShell中简单的自定义函数和调用函数例子
- 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- 自定义类型两个list进行求交集的操作以及将hashmap有序输出
- 1.编程实现: 两个int(32位)整数m和n的二进制表达中, 有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- 世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么? 输入例子: 1999 2299 输出例子: 7
- 关于控制台程序输出重定向到IDE两个例子 之一
- 编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- 输出一个整数的每一位。两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
- 将键盘输入的字符串送到用户自定义的数据缓存区中并输出
- C#中调用SQL存储过程(带输入输出参数的例子)