Изменить имя samaccount в .csv с помощью PowerShell - PullRequest
0 голосов
/ 19 октября 2018

Мне нужно сравнить активных пользователей в Active Directory со списком профилей пользователей с сервера, а затем удалить отключенные профили на том же сервере.

Я пытаюсь получить список .csv пользователей длякаждый: один для AD и один для сервера.

Когда я получаю файл сервера, профили отображаются так: «домен \ имя пользователя», но с файлом AD я получаю только: «имя пользователя», поэтомуЯ не могу их сравнить.

В идеале я хотел бы изменить имя пользователя, когда я получу файл AD для добавления домена.Я пытался сделать что-то вроде этого:

$Name = $_.SamAccountName
ForEach-Object {
    Get-ADUser -Filter 'enabled -eq $true' | select-object SamAccountName

    $Name = "DOMAIN\ + $Name"
}     
$users | Export-Csv c:\USEREnabled.csv -Encoding UTF8

, который возвращает файл .csv со всеми SamAccountName, но без каких-либо изменений.

1 Ответ

0 голосов
/ 19 октября 2018

Вы можете сделать это, используя технику, которая называется «Вычисляемые свойства».Здесь мы генерируем новое свойство для объекта через Select-Object.Вот как это может работать для вас:

Get-ADUser -Filter 'enabled -eq $true' | 
    Select-Object SamAccountName,@{Name='FullUserName';Expression={"YOURDOMAIN\$($_.SamAccountName)"}} |
    Export-CSV C:\Temp\UsersEnabled.csv -Encoding UTF8

Это работает путем добавления к Select-Object хеш-таблицы с ключами Name и Expression.Внутри ключа Expression блок сценария используется для создания новой строки, которая добавляет домен к свойству SamAccountName каждого пользователя в конвейере (который представлен автоматической переменной $_).

Результатэто будет объект с двумя возвращенными свойствами: SamAccountName и FullUserName.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...