|
Компьютерный форум OSzone.net » Серверные продукты Microsoft » Windows Server 2016/2019/2022 » 2019 - Скрипт PowerShell перенос пользаков с CSV в AD |
|
2019 - Скрипт PowerShell перенос пользаков с CSV в AD
|
Новый участник Сообщения: 4 |
Есть старая БД по пользователям, нужно занести ее из CSV файла на новый сервер.
Все действия проходят на тестовых виртуалках. Написал небольшой скрипт в PS по гайдам, но как ни ни получается довести до ума: Скрипт
Import-Module ActiveDirectory
Import-Csv -Path "C:\Users\Administrator\Desktop\Users.csv" -Encoding Unicode -Delimiter ";" ForEach-Object { $uname = $_.LastName + " " + $_.FirstName $ouz = $_.OU New-ADUser -Name $uname ` -GivenName $_.FirstName -Surname $_.LastName ` -Title $_.Role -MobilePhone $_.Phone ` -Department $ou -StreetAddress $_.Street ` -PostalCode $_.ZIP -City $_.City ` -Country $_.Country -Path "OU=$ouz,DC=skills39,DC=wsr" ` -AccountPassword ( ConvertTo-SecureString "P@ssw0rd1" -AsPlainTex -Force) ` -Enabled $true ` -CannotChangePassword $true ` } Import-Csv -Path "C:\Users\Administrator\Desktop\Users.csv" -Delimiter ";" ForEach-Object { $uname = $_.LastName + " " + $_.FirstName $ouz = $_.OU Add-ADGroupMember -Identity $ouz -Members $uname -passthru } Ошибка
Add-ADGroupMember : Cannot validate argument on parameter 'Identity'. The argument is null. Provide a valid value for the argument, and then try
running the command again. At C:\Users\Administrator\Desktop\Untitled2.ps1:20 char:29 + Add-ADGroupMember -Identity $ouz -Members $uname -passthru + ~~~~ + CategoryInfo : InvalidData: ( ![]() + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember New-ADUser : The object name has bad syntax At C:\Users\Administrator\Desktop\Untitled2.ps1:6 char:1 + New-ADUser -Name $uname ` + ~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (CN=\\ ,OU=,DC=skills39,DC=wsr:String) [New-ADUser], ADException + FullyQualifiedErrorId : ActiveDirectoryServer:8335,Microsoft.ActiveDirectory.Management.Commands.NewADUser Пример CSV
FirstName;LastName;Role;Phone;OU;Street;ZIP;City;Country;Password
Malachi;Alexander;Overal;(01093) 67264;Overal;Rua C 577;39404-335;Moscow;Russia;P@ssw0rd1 Могу ли сразу добавить в AD и группу и пользователей в нее сразу? И в чем ошибка в моих действиях? |
|
Отправлено: 15:16, 28-01-2021 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать между Import-Csv и ForEach-Object нужен оператор конвейера |
|
Отправлено: 19:51, 28-01-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Вот так попробуйте:
$csv = Import-Csv "C:\Users\Administrator\Desktop\Users.csv" -Delimiter ';' -Encoding Unicode foreach ($user in $csv) { $uname = $user.LastName + " " + $user.FirstName New-ADGroup "$($user.ou)" -GroupScope Global New-ADUser -Name "$uname" ` -GivenName $user.FirstName -Surname $user.LastName ` -Title $user.Role -MobilePhone $user.Phone ` -Department "$($user.ou)" -StreetAddress $user.Street ` -PostalCode $user.ZIP -City $user.City ` -Country $user.Country -Path "OU=$($user.ou),DC=skills39,DC=wsr" ` -AccountPassword (ConvertTo-SecureString "$($user.Password)" -AsPlainText -Force) ` -Enabled $true ` -CannotChangePassword $true "$($user.ou)" |Add-ADGroupMember -Members (Get-ADUser -Filter "Name -eq '$uname'") } |
------- Отправлено: 09:31, 29-01-2021 | #3 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
Скрытый текст
New-ADGroup : The specified group already exists
At C:\Users\Administrator\Desktop\Untitled2.ps1:7 char:1 + New-ADGroup "$($user.ou)" -GroupScope Global + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (CN=Manager,CN=Users,DC=skill39,DC=wsr:String) [New-ADGroup], ADException + FullyQualifiedErrorId : ActiveDirectoryServer:1318,Microsoft.ActiveDirectory.Management.Commands.NewADGroup New-ADUser : The server is unwilling to process the request At C:\Users\Administrator\Desktop\Untitled2.ps1:9 char:1 + New-ADUser -Name "$uname" ` + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (CN=\\ ,OU=Manager,DC=skills39,DC=wsr:String) [New-ADUser], ADException + FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.NewADUser Get-ADUser : A referral was returned from the server At C:\Users\Administrator\Desktop\Untitled2.ps1:19 char:45 + ... | Add-ADGroupMember -Members (Get-ADUser -Filter "Name -eq '$uname'") + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: ( ![]() + FullyQualifiedErrorId : ActiveDirectoryServer:8235,Microsoft.ActiveDirectory.Management.Commands.GetADUser Грешу на сервер т.к. на машине другого офиса сработал на ура этот скрипт: Скрытый текст
Import-Module ActiveDirectory
Import-Csv C:\users.csv -Delimiter ";" | ForEach-Object{$Name = $_.LN + $_.FN New-ADUser -Name $Name ` -GivenName $_.FN ` -Surname $_.LN ` -Title $_.Role ` -MobilePhone $_.Phone ` -Department $_.OU ` -StreetAddress $_.Street ` -PostalCode $_.ZIP ` -City $_.City ` -Country RU ` -Path ("OU=" + $_.OU + ",DC=skill39,DC=wsr") ` -AccountPassword (ConverTo-secureString "P@ssw0rd1" -AsPlainText -Force) ` -Enabled $true ` -CannotChangePassword $true} Import-Csv C:\users.csv -Delimiter ";" | ForEach-Object{$Mem = $_.LN + $_.FN Add-ADGroupMember -Identity $_.OU ` -Members $Mem} |
|
Последний раз редактировалось Auvick, 29-01-2021 в 13:16. Отправлено: 11:33, 29-01-2021 | #4 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Вероятно, лучше разделить скрипт на 2 части, одна будет создавать группы, а вторая - добавлять туда пользователей.
Так как AD - это база данных, да ещё и с репликацией между серверами, лучше создать группы, подождать несколько минут, и потом уже запускать создание и добавление пользователей в них. |
|
------- Отправлено: 09:37, 30-01-2021 | #5 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
|
|
Отправлено: 12:36, 01-02-2021 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] скрипт создание контактов в AD из csv файла | mcintosh55 | Скриптовые языки администрирования Windows | 1 | 23-02-2020 22:10 | |
PowerShell - [решено] PowerShell - скрипт блокировки учетных записей AD, не успевших залогиниться до 9:01 | Dmit84 | Скриптовые языки администрирования Windows | 9 | 21-11-2017 11:24 | |
PowerShell - [решено] Импорт из CSV в AD с помощью PowerShell | rox33 | Скриптовые языки администрирования Windows | 23 | 20-07-2012 15:45 | |
2008 R2 - [решено] Windows Server R2 + PowerShell + CSV + AD | rox33 | Windows Server 2008/2008 R2 | 1 | 04-07-2012 11:31 | |
Любой язык - [решено] Нужен скрипт cmd,vbs,PowerShell для проверки списка пользователей и их удаление из AD | alex_frog | Скриптовые языки администрирования Windows | 6 | 22-07-2009 18:41 |
|