Active Directory Powershell в текстовый файл фиксированной ширины - PullRequest
0 голосов
/ 18 декабря 2018

Попытка экспортировать 4 объекта из Ad в текстовый файл фиксированной ширины без заголовка.

Мне нужно, чтобы следующие столбцы были следующей шириной.

Employee ID    10 
Work Phone      10
Work Phone Extension    5
Work Email Address      50
User ID             20

Следующее дает мне лучший результат, но не определяет размер столбцов так, как мне нужно.Я копался и думаю, что мне нужно немного больше, чем мне удобно.

Я не уверен, нужно ли мне экспортировать с помощью export-csv, а затем импортировать это в переформатирование или я могу напрямую выполнить out-file.

$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 

1 Ответ

0 голосов
/ 18 декабря 2018

Возможно, вам придется сделать это вручную ...

$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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...