2014-04-02 36 views
0

我想知道是否有代碼塊'功能'的部分內選擇您自己的'標籤'的選項。下面的腳本工作得很好,但不可能添加類似Label =「Manager」的內容。PowerShell使用標籤格式化功能的輸出

Function Manager ($m) 
{ { $m = Get-ADObject -Identity $_.managedBy -Properties displayName,cn 
     if($m.ObjectClass -eq "user") { $m.displayName } Else{ $m.cn } } } 

$When = ((Get-Date).AddDays(-21)).Date 
     Get-ADGroup -SearchBase "OU=Groups,OU=BEL,OU=EU,DC=domain,DC=net" -Filter {whenCreated -ge $When} -Properties * | 
     Select whenCreated, cn, displayName, GroupScope, GroupCategory, description, info, (Manager managedBy) | Export-Csv "New groups -21 days.csv" -NoTypeInformation -Delimiter ";" -Encoding utf8; start "New groups -21 days.csv" 

謝謝你的幫助。

+0

幫助這就是參數是 - 輸入到該函數在被調用時會改變它的行爲。 – mjolinor

回答

0

如果我理解正確,您想要使用自定義標頭和數據格式化輸出表。 $_令牌表示在當前管道中傳遞的對象,這就是爲什麼它適用於選擇語句。出於這個原因,你需要改變經理這樣的功能得到的ManagedBy從你傳遞的對象,$u屬性,如流水線對象$_不會在經理函數內部存在。

經理以下更改,您的選擇聲明將做到這一點:

Function Manager ($u) 
{ $m = Get-ADObject -Identity $u.managedBy -Properties displayName,cn 
    if($m.ObjectClass -eq "user") { $m.displayName } Else{ $m.cn } } 

$When = ((Get-Date).AddDays(-21)).Date 
    Get-ADGroup -SearchBase "OU=Groups,OU=BEL,OU=EU,DC=domain,DC=net" -Filter {whenCreated -ge $When} -Properties * | 
    Select whenCreated, cn, displayName, GroupScope, GroupCategory, description, info, @{Label="manager"; expression= { Manager $_ } } | Export-Csv "New groups -21 days.csv" -NoTypeInformation -Delimiter ";" -Encoding utf8; start "New groups -21 days.csv" 

這個教程將表格格式 http://technet.microsoft.com/en-us/library/ee692794.aspx

+0

感謝您的提示,我已經檢查過,但不知怎的,我似乎無法把它放在我的功能。請注意,我仍然是一名腳本初學者。我試過如下: 功能管理器($ M) { \t {$ M = GET-ADObject -Identity $ _的ManagedBy -Properties顯示名,CN 如果($ m.ObjectClass -eq 「用戶」) \t。 \t \t {Format-Table @ {Label =「Name」;表達式= {($ m.displayName)}}} \t \t否則{格式 - 表格@ {標籤=「名稱」;表達式= {($ m.cn)}}}} \t} } – DarkLite1

+0

修正答案。 – Raf

+0

謝謝拉夫,這個作品確實完美!我只想知道是否可以在函數的代碼塊中定義標籤,而不是在選擇代碼塊中定義標籤。但現在這個工作很好,所以再次感謝你的幫助。 – DarkLite1