Как лучше всего экспортировать данные введенные в гуй пользователями в csv?
Я себе это изначально представлял так:
Скрытый текст
Код:
![Выделить весь код](images/misc/selectcode.png)
function fButtonClick {
# user-defined variables
[string]$name = $givenNameTextBox.text
[string]$surname = $snTextBox.text
[string]$fullname = "$surname $name"
[string]$title = $titleTextBox.text
[string]$dept = $departmentTextBox.text
[string]$company = $companyTextBox.text
[string]$login = $loginTextBox.text
[string]$emailaddress = "$login" + "@" + "$domainoption1"
[string]$upn = "$login$domainsuffix"
$ADParams = @{
Path = $ADPath
Name = $fullname
GivenName = $name
Surname = $surname
DisplayName = $fullname
Company = $company
Department = $dept
Title = $title
SamAccountName = $login
EmailAddress = $emailaddress
UserPrincipalName = $upn
}
# save user with all params as an object inside csv
New-ADUser @ADParams -PassThru | Export-Csv -Path ("$exportPath"+'\'+"$login"+".csv") -Encoding UTF8
}
В результате (как мне хотелось) - появлялись бы по 1-му *.csv файлу на пользователя с именем login.csv.
Но так оно не работает. Проблема в том что командлет new-aduser пробует добавить пользователя в любом случае (для того он всё-таки и нужен), а уже потом если указана опция -passthru -
дополнительно шлет данные дальше по конвейеру. И получается что если у пользователя, запускающего скрипт, есть права на добавления пользователя в AD - пользователь добавляется (и шаг с экспортом\импортом становится бессмысленным), а если нету - выдает ошибку (и до экспорта дело не доходит).
Выходит я выбрал неправильный подход к экспорту данных о пользователе. А какие еще могут быть варианты?
Экспортировать я хочу объект со свойствами (1 объект = 1 пользователь), которые в дальнейшем пойдут на вход командлету new-aduser в импортирующий скрипт.
Или шаг с экспортом\импортом вообще тухлая идея и нужно просто нужным людям раздать права на добавление пользователей в AD, поставить им RSAT (чтоб модуль содержащий командлеты для работы с AD установился) и пусть добавляют напрямую из GUI в AD? Так вроде много проще но... я не знаю какие могут быть подводные камни.