2

所以我认为这对powershell来说是一件简单的事情,但我似乎无法弄清楚如何将我的数组输出为列。下面是我的脚本。

$Table = @()

$Employees = Get-ADUser -SearchBase "OU=Emplyoees,DC=mydomain,DC=com" -Filter * -Properties * | ?{$_.telephoneNumber -ne $Null}

ForEach($User in $Employees){$Table += @($User.Name,$user.telephoneNumber)}

($Table)

输出类似于:

User1
PhoneNumber1
User2
PhoneNumber2


我希望它看起来像:

姓名 电话号码
用户 1 电话号码 1
用户 2 电话号码 2

任何帮助都会很棒

4

1 回答 1

3

尝试这个:

ForEach($User in $Employees){$Table += ,@($User.Name,$user.telephoneNumber)} #NOTE THE COMMA HERE
$table | % { $_ -join '`t' } # the `t is a tab, but you can use whatever you want

评论后编辑:

如果只需要布局,您可以尝试:

 $table | % {  "{0,-20}{1,20}" -f $_[0],$_[1]  } #the 2nd value in {} is the relative cursor position the sign left o right alignment

但为什么不只使用$Employees变量来显示结果:

$Employees = Get-ADUser -SearchBase "OU=Emplyoees,DC=mydomain,DC=com" -Filter * -Properties * | 
?{$_.telephoneNumber -ne $Null} | select name, telephonenumber | ft
于 2013-02-08T06:03:48.000 回答