rox33
03-07-2012, 16:36
Добрый день.
Есть такая проблема. Нужно :
1. Из файла CSV (созданного сторонним продуктом), где находятся имена, почтовые ящики и телефоны пользователей, импортировать список в ActiveDirectory. Пробовал разными способами (dsadd, ps, csvde). Успеха не добился.
2. Вставить в скрипт создания пользователя проверку данных по каждому пользователю (пользователя по полю email определять) и при нестыковках заносить данные из csv в AD.
Итак.
1. Есть CSV файл такого вида:
name;displayname;Password;EmailAddress;MobilePhone; Description
ivan;ivan.ivanov;Qw12345;ivan.ivanov@test.ru;8-999-999-9999;test
Пытаюсь сделать запустить скрипт вида:
Import-CSV -Path "C:\list.csv" | ForEach-Object -process {New-ADuser -Name $_.Name -Description $_.Description -DisplayName $_.DisplayName -EmailAddress $_.EmailAddress -MobilePhone $_.MobilePhone-Path "ou=Test,dc=Test,dc=ru" -CannotChangePassword $true -ChangePasswordAtLogon $false -PasswordNotRequired $true -AccountPassword $_.Password -Company TEST}
Взят и слегка исправлен отсюда (http://parafoxer.livejournal.com/106150.html).
При выполнении скрипта выдаёт:
New-ADUser : Не удается проверить аргумент для параметра "Name". Аргумент пустой или имеет значение NULL. Укажите не пустой аргумент, не имеющий значение NULL, после чего повторите выполнение команды.
C:\3.ps1:1 знак:76
+ Import-CSV -Path "C:\short.csv" | ForEach-Object -process {New-ADuser -Name <<<< $_.Name -DisplayName $_.DisplayName
-EmailAddress $_.EmailAddress -MobilePhone $_.MobilePhone -Path "ou=Users,dc=test,dc=ru" -CannotChangePassword $true -ChangePasswordAtLogon $false -PasswordNotRequired
$true -AccountPassword $_.Password -Company TEST}
+ CategoryInfo : InvalidData: ( [New-ADUser], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.N ewADUser
На самом деле не привязан к PS. Если есть более доступные способы - готов выслушать.
2. Тут ещё ничего не сделано, т.к. сначала надо бы занести юзверей в AD.
Есть такая проблема. Нужно :
1. Из файла CSV (созданного сторонним продуктом), где находятся имена, почтовые ящики и телефоны пользователей, импортировать список в ActiveDirectory. Пробовал разными способами (dsadd, ps, csvde). Успеха не добился.
2. Вставить в скрипт создания пользователя проверку данных по каждому пользователю (пользователя по полю email определять) и при нестыковках заносить данные из csv в AD.
Итак.
1. Есть CSV файл такого вида:
name;displayname;Password;EmailAddress;MobilePhone; Description
ivan;ivan.ivanov;Qw12345;ivan.ivanov@test.ru;8-999-999-9999;test
Пытаюсь сделать запустить скрипт вида:
Import-CSV -Path "C:\list.csv" | ForEach-Object -process {New-ADuser -Name $_.Name -Description $_.Description -DisplayName $_.DisplayName -EmailAddress $_.EmailAddress -MobilePhone $_.MobilePhone-Path "ou=Test,dc=Test,dc=ru" -CannotChangePassword $true -ChangePasswordAtLogon $false -PasswordNotRequired $true -AccountPassword $_.Password -Company TEST}
Взят и слегка исправлен отсюда (http://parafoxer.livejournal.com/106150.html).
При выполнении скрипта выдаёт:
New-ADUser : Не удается проверить аргумент для параметра "Name". Аргумент пустой или имеет значение NULL. Укажите не пустой аргумент, не имеющий значение NULL, после чего повторите выполнение команды.
C:\3.ps1:1 знак:76
+ Import-CSV -Path "C:\short.csv" | ForEach-Object -process {New-ADuser -Name <<<< $_.Name -DisplayName $_.DisplayName
-EmailAddress $_.EmailAddress -MobilePhone $_.MobilePhone -Path "ou=Users,dc=test,dc=ru" -CannotChangePassword $true -ChangePasswordAtLogon $false -PasswordNotRequired
$true -AccountPassword $_.Password -Company TEST}
+ CategoryInfo : InvalidData: ( [New-ADUser], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.N ewADUser
На самом деле не привязан к PS. Если есть более доступные способы - готов выслушать.
2. Тут ещё ничего не сделано, т.к. сначала надо бы занести юзверей в AD.