尝试将4个对象从Ad导出到不带标题的固定宽度txt文件中。
我需要以下各列为随后的宽度。
Employee ID 10
Work Phone 10
Work Phone Extension 5
Work Email Address 50
User ID 20
以下内容为我提供了最好的输出,但是并没有按照我需要的方式调整列的大小。我一直在挖掘,认为我需要的东西超出了我所能适应的范围。
我不确定是否需要使用export-csv导出,然后将其导入重新格式化,或者我是否可以直接进行文件外输出。
$DateTime = Get-Date -f "yyyyMMdd"
#// Set CSV file name
$CSVFile = "d:\scripts\workday\int002_"+$DateTime+".txt"
Get-ADGroup -Filter {(name -like "*Group Name*")} `
| Get-ADGroupMember -Recursive | Where { $_.objectClass -eq "user" } `
| Get-ADUser -properties * | where {$_.enabled -eq $true} `
| select employeeid,telephoneNumber,mail,sAMAccountName -unique | FT employeeid,telephoneNumber,mail,sAMAccountName -hidetableheaders -autosize | out-file $CSVFile
样本输出:
8855 2122445710 xxxry.michalsen@companydomain.com michalsenm
答案 0 :(得分:3)
您可能需要手动进行操作...
$result = foreach($user in $users) {
$user.employeeid.PadRight(10),
$user.telephoneNumber.PadRight(10),
$user.mail.PadRight(50),
$user.sAMAccountName.PadRight(20) -join ' '
}
$result | Out-File $CSVFile
如果属性不是字符串,则修订版也可以使用:
$result = foreach($user in $users) {
'{0,-10}{1,-10}{2,-50}{3,-20}' -f
$user.employeeid,
$user.telephoneNumber,
$user.mail,
$user.sAMAccountName
}
$result | Out-File $CSVFile