所以我认为这对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)
输出类似于:
用户1
PhoneNumber1
用户2
PhoneNumber2
我希望它看起来像是:
名称******中国
用户1 PhoneNumber1
用户2 PhoneNumber2
任何帮助都会很棒
答案 0 :(得分: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