PowerShell使用标签格式化函数的输出

时间:2014-04-02 10:57:52

标签: powershell

我想知道是否可以选择自己的标签'在代码块'功能'的范围内。下面的脚本运行得很好,但是无法添加像Label =" Manager"。

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"

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望使用自定义标头和数据格式化输出表。  $_标记表示在当前管道中传递的对象,这就是它适用于 Select 语句的原因。因此,您需要更改 Manager ,以便函数从您传入的对象$u获取 managedBy 属性,如同管道对象$_那样 Manager 函数中不存在。

Manager Select 语句的以下更改将执行此操作:

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