Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Создания пользователя в AD

Ответить
Настройки темы
PowerShell - [решено] Создания пользователя в AD

Аватара для ejik_off

Старожил


Сообщения: 473
Благодарности: 11

Профиль | Отправить PM | Цитировать


Изменения
Автор: ejik_off
Дата: 01-12-2011
Всем доброго времени суток!!!
Написал скрипт для создания пользователя в ад
Код: Выделить весь код
New-ADUser -Name "Василий Пупкин" -SamAccountName v_pupkin -GivenName Василий 
-Surname Пупкин -DisplayName "Василий Пупкин"  -Path 'OU=Test,OU=users,OU=corp,DC=lab,DC=com'-UserPrincipalName "v_pupkin@lab.com" 
-CannotChangePassword $false -ChangePasswordAtLogon $true -Enabled $true -AccountPassword (Read-Host -AsSecureString AccountPassword)
Скрипт отрабатывается нормально, но чтобы не ковырять постоянно скрипт, а передавать необходимые параметры из командной строки я немного изменил данный скрипт
Код: Выделить весь код
Param ($account, $gname, $sname, $OrUn);
$fname = $gname + " " + $sname ;

Function UserAdd ()
{
 New-ADUser -Name $fname -SamAccountName $account -GivenName $gname -Surname $sname -DisplayName $fname  -Path 'OU='$OrUn',OU=users,OU=corp,DC=lab,DC=com'-UserPrincipalName $account"@lab.com" -CannotChangePassword $false -ChangePasswordAtLogon $true -Enabled $true -AccountPassword (Read-Host -AsSecureString AccountPassword)
}
UserAdd -SamAccountName $account -GivenName $gname -Surname $sname -DisplayName $fname -Path $OrUn -UserPrincipalName $upn
Запуск скрипта с параметрами useradd.ps1 -account v_pupkin -gname Василий -fname Пупкин -OrUn test приводит к такой ошибке
Код: Выделить весь код
Set-Location : Не удается найти параметр, соответствующий имени параметра "account".
строка:1 знак:34
+ cd script\ps\useradd.ps1 -account <<<<  v_pupkin -gname Василий -fname Пупкин
 -OrUn test
    + CategoryInfo          : InvalidArgument: (:) [Set-Location], ParameterBi
   ndingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Comm
   ands.SetLocationCommand
Подскажите что делаю не правильно?

Отправлено: 10:42, 01-12-2011

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Param ($account, $gname, $sname, $OrUn)
$fname = $gname + " " + $sname 

New-ADUser -Name $fname -SamAccountName $account -GivenName $gname `
 	-Surname $sname -DisplayName $fname  -Path "OU=$OrUn,OU=users,OU=corp,DC=lab,DC=com" `
	-UserPrincipalName "$account@lab.com" -CannotChangePassword $false `
	-ChangePasswordAtLogon $true -Enabled $true `
	-AccountPassword (Read-Host -AsSecureString AccountPassword)
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:05, 01-12-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ejik_off

Старожил


Сообщения: 473
Благодарности: 11

Профиль | Отправить PM | Цитировать


Kazun, Перемудрил значит я. Еще такая мелочь, не хочется постоянно вводить пароль, как можно его в скрипте прописать, в справки не нашел или плохо смотрел.

Отправлено: 13:28, 01-12-2011 | #3


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$password = ConvertTo-SecureString "PassWord" -AsPlainText -Force
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:30, 01-12-2011 | #4


Аватара для ejik_off

Старожил


Сообщения: 473
Благодарности: 11

Профиль | Отправить PM | Цитировать


Большое спасибо за помощь!!!!

Отправлено: 13:59, 01-12-2011 | #5


Аватара для ejik_off

Старожил


Сообщения: 473
Благодарности: 11

Профиль | Отправить PM | Цитировать


Kazun, Еще вопрос по данному скрипту, хочется полностью автоматизировать. Добавил еще добавление пользователя в группы, но вот ни как не могу это отладить все время вылетает с ошибкой.
скрипт:
Код: Выделить весь код
Param ($account, $gname, $sname, $OrUn)
$fname = $gname + " " + $sname 
$password = ConvertTo-SecureString "Pa$$w0rd" -AsPlainText -Force
New-ADUser -Name $fname -SamAccountName $account -GivenName $gname `
 	-Surname $sname -DisplayName $fname  -Path "OU=$OrUn,OU=users,OU=corp,DC=lab,DC=com" `
	-UserPrincipalName "$account@lab.com" -CannotChangePassword $false `
	-ChangePasswordAtLogon $true -Enabled $true `
	-AccountPassword $password
$group = Get-ADGroup -Filter {Name -like "DG-CAP-Restrict-*"} | Select DistinguishedName
Foreach ($GR in $group)
{
	Add-ADGroupMember $GR -Members $account
}
Вот ошибка:
Код: Выделить весь код
Add-ADGroupMember : Не удается привязать параметр "Identity". Не удается преобразовать значение "@{DistinguishedName=CN=DG-CAP-Restrict-Outside,OU=Groups,OU
=corp,DC=lab,DC=com}" типа "Selected.Microsoft.ActiveDirectory.Management.ADGroup" в тип "Microsoft.ActiveDirectory.Management.ADGroup".
D:\script\ps\useradd.ps1:22 знак:19
+     Add-ADGroupMember <<<<  $GR -Members $account
    + CategoryInfo          : InvalidArgument: (:) [Add-ADGroupMember], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
Вот что ему не нравиться я так и не могу понять. Менял уже и тип вывода на System.String т.е
$group = Get-ADGroup -Filter {Name -like "DG-CAP-Restrict-*"} | Select Name | Out-String но и это не помогло.

Отправлено: 11:09, 02-12-2011 | #6


Аватара для ejik_off

Старожил


Сообщения: 473
Благодарности: 11

Профиль | Отправить PM | Цитировать


Разобрался $group = Get-ADGroup -Filter {Name -like "DG-CAP-Restrict-*"} | Select Name изменить $group = Get-ADGroup -Filter {Name -like "DG-CAP-Restrict-*"} и готова

Отправлено: 14:32, 02-12-2011 | #7


Аватара для ejik_off

Старожил


Сообщения: 473
Благодарности: 11

Профиль | Отправить PM | Цитировать


Ну собственно довел скрип до конца, ИМХО. Просьба к гуру-PS, посмотреть и ткнуть на недостатки или недочеты скрипта. Или как можно было написать более красивый скрипт. Очень важно мнение знающих, так как только начинаю изучать PS.
Ну собственно вот сам скрипт.

Код: Выделить весь код
##################################################
# $account - логин для входа в систему  		                                          #
# $gname - Имя									                          #
# $sname - Фамилия								                          #
# $fname - Имя Фамилия							                                  #
# $OrUn - Организационное подразделение в AD                                         #
#		  может принемать Local или Regional	                                          #
# $Dep - Департамент, для филиалов город		                                          #
##############################################################
#                      Пример запуска скрипта  											 #
# useradd.ps1 -account v_pupkin -gname Василий -sname Пупкин -OrUn Test -Dep *атырау      #
##############################################################


Param ($account, $gname, $sname, $OrUn, $Dep)
$fname = $gname + " " + $sname 
$password = ConvertTo-SecureString "Pa$$w0rd" -AsPlainText -Force
New-ADUser -Name $fname -SamAccountName $account -GivenName $gname `
 	-Surname $sname -DisplayName $fname  -Path "OU=$OrUn,OU=users,OU=corp,DC=lab,DC=com" `
	-UserPrincipalName "$account@lab.com" -CannotChangePassword $false `
	-ChangePasswordAtLogon $true -Enabled $true `
	-AccountPassword $password
$group = Get-ADGroup -Filter {Name -like "DG-CAP-Restrict-*"} 
Foreach ($DG in $group)
{
	Add-ADPrincipalGroupMembership $account -MemberOf $DG
}
Add-ADGroupMember GRP-OpenFire -Members $account
$regname = Get-ADGroup -Filter {DisplayName -like $Dep } | Where {$_.GroupCategory -eq "Security"} 

Add-ADGroupMember $regname -Members $account
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:20, 09-12-2011 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Создания пользователя в AD

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Нужен скрипт создания общей папки для текущего пользователя в домене Sergey700 Скриптовые языки администрирования Windows 7 02-12-2022 16:15
Общее - [решено] Отказ от создания нового пользователя при автоустановке alexagf Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 21 05-12-2012 16:50
Разное - В Висте премеум переименовал пользователя теперь нет доступа для создания нового mian Microsoft Windows Vista 0 15-12-2008 06:16
[решено] WinXP - после создания пользователя, учетная запись Администратор не "пропадает" MSI Автоматическая установка Windows 2000/XP/2003 4 11-06-2008 18:58
Дайте совет!!! по автоматизации создания, пользователя, пароля итд romfrom Microsoft Windows NT/2000/2003 1 28-08-2007 17:12




 
Переход