Powershell 自定义输出列,两个例子
昨天和今天因?yàn)楣ぷ餍枰獙?xiě)了兩個(gè)很簡(jiǎn)單的腳本,都需要自定義輸出的列,需要用到 select @{name="名字”expression={表達(dá)式}}這種方式自定義。
第一個(gè)例子是boss讓我輸出一個(gè)簡(jiǎn)單的報(bào)表,需要列出悉尼除了系統(tǒng)賬號(hào)以外的所有用戶,包括他們的名字,手機(jī),座機(jī),所在的OU,公司等等信息。
這個(gè)基本的命令很簡(jiǎn)單,get-aduser就能實(shí)現(xiàn),幾個(gè)過(guò)濾的條件稍微思考了一下。
所有悉尼用戶,可以用 -searchbase限制搜索的OU范圍;
排除系統(tǒng)賬號(hào),因?yàn)樗械南到y(tǒng)賬號(hào)都位于同一個(gè)OU下面,那么搜索的時(shí)候過(guò)濾掉這個(gè)OU就行,例如
????????get-aduser -filter * | where-object{$_.disginuishedname -notlike '*XXXX*‘}
各種需要查看的屬性可以用-properties 列出
用戶所在的OU本身不是一個(gè)屬性,不過(guò)可以列出用戶的caonicalname 屬性,例如 /domain/ouname/username 的格式,然后通過(guò)split分隔符’/‘來(lái)處理
可以通過(guò){name="xxx"';express={XXX}}的格式來(lái)自定義輸出的表格header
最后導(dǎo)出到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查看一下結(jié)果
第二個(gè)例子是因?yàn)閣indows 2003服務(wù)器上周壽終正寢了,我需要導(dǎo)出AD里面windows2000和2003的記錄,看看是否還在使用。實(shí)現(xiàn)方式和上面類(lèi)似,filter過(guò)濾操作系統(tǒng)類(lèi)型,然后select里面表達(dá)式自定義status,test-connection發(fā)送一個(gè)icmp包進(jìn)行判斷,根據(jù)結(jié)果返回值,同時(shí)輸出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 |
本文轉(zhuǎn)自 beanxyz 51CTO博客,原文鏈接:http://blog.51cto.com/beanxyz/1675600,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的Powershell 自定义输出列,两个例子的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。