轉自: http://simy88.blog.51cto.com/7370552/1683487shell
1、 哈希表用於AD屬性修改,-add能夠用於新屬性的添加,-replace則能夠用於屬性的修改。express
$custom = @{}數組
$custom.ExtensionAttribute3= 123d
$custom.ExtensionAttribute4 = 'Hello'orm
Set-ADUser -Identity zhangsan -Add $custom對象
2、使用Group-Object快速建立哈希表,Group-Object可以將不少對象其中相同的屬性一塊兒歸爲一組;blog
譬如若是咱們要根據文件夾的名稱來獲取其路徑:排序
$FolderHash = Get-ChildItem -Recurse -Path "D:\新建文件夾\桌面\wsusoffline" | where $_.PSIsContainer -eq "false" | select Name,Fullname | Group-Object -AsHashTable -Property nameget
3、哈希表格式化輸出來控制列寬it
在powershell的使用過程當中,Format-table是格式化輸出很是漂亮的一種方法,雖然其能夠用-auto、wrap等參數控制輸出格式可是你沒法直接控制其寬度仍然是很直觀的一種限制,使用哈希表則能夠很是巧妙的完成這一功能。
FT表格的每個列包含四個屬性:
Expression:綁定的表達式
Width:列寬度
Label:列標題
Alignment:列的對齊方式
$Column1= @{expression="Name"; width=30; label="ServiceName"; alignment="left"}
$Column2= @{expression="DisPlayname"; width=50; label="DisplayName"; alignment="left"}
$Column3= @{expression="Status"; width=30; label="ServiceStatus"; alignment="left"}
Get-Service | Ft $Column1, $Column3, $Column2
4、哈希表的有序使用和順序更改
哈希表在添加新的對象時會默認將新添加的對象放在最上面,而有序哈希表經過指定類型[Ordered]能夠改變這一順序。
在完成哈希表的成員添加後,若想打破原先的結構而從新插入一個對象,可使用insert的方法來實現。
5、哈希表的嵌套使用
哈希表的嵌套使用可讓表的層次結構更清晰,就像多維數組同樣。
譬如我要錄入某個帳號的屬性,其中其地址需細分:
6、給對象和哈希表進行排序
若是要完成主要關鍵字降序,次要關鍵字升序的排序:
Dir | Sort-Object@{expression="Length";Descending=$true},@{expression="Name";Ascending=$true}
Creating Custom Tableshttp://technet.microsoft.com/en-us/library/ee692794.aspxWorking with Hash Tableshttp://technet.microsoft.com/en-us/library/ee692803.aspx