Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

toadmr

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
Start-PodeServer {
Add-PodeEndpoint -Address '*' -Port 8081 -Protocol Http
 
New-PodeLoggingMethod -Terminal | Enable-PodeErrorLogging
 
$Departments = @{
'Маркетинг' = @{
'OU' = 'Marketing';
'Groups' = @('"Отдел маркетинга"')
};
'Бухгалтерия' = @{
'OU' = 'Accounting';
'Groups' = @('"Бухгалтерия"')
};
'Лаборатория' = @{
'OU' = 'Laboratory';
'Groups' = @("Лаборатория")
};
'МТО' = @{
'OU' = 'MTO';
'Groups' = @('"mto@radiofid.ru"')
};
'Производство' = @{
'OU' = 'Production';
'Groups' = @('"Производство"')
};
'Отдел закупок' = @{
'OU' = 'Purchase';
'Groups' = @('"Отдел закупок"')
};
'Отдел продаж' = @{
'OU' = 'Radiofid sales';
'Groups' = @("Отдел продаж")
};
'Склад' = @{
'OU' = 'Stock';
'Groups' = @("Склад")
};
'Руководство' = @{
'OU' = 'VIP';
'Groups' = @("Руководство")
}
}
 
$Domains = @{
'Домен: 911.fm' = @{
'Domain' = '@911.fm'
};
'Домен: electrofid.ru' = @{
'Domain' = 'electrofid.ru'
};
'Домен: findme.fm' = @{
'Domain' = 'findme.fm'
};
'Домен: irz.su' = @{
'Domain' = 'irz.su'
};
'Домен: irzonline.ru' = @{
'Domain' = 'irzonline.ru'
};
'Домен: irzteam.com' = @{
'Domain' = 'irzteam.com'
};
'Домен: radiofid.com' = @{
'Domain' = 'radiofid.com'
};
'Домен: radiofid.ru' = @{
'Domain' = 'radiofid.ru'
}
}
 
$fio = @{
'А' = "a"; 'Б' = "b"; 'В' = "v"; 'Г' = "g"; 'Д' = "d"; 'Е' = "e"; 'Ж' = "j"; 'З' = "z"; 'И' = "I";
'К' = "k"; 'Л' = "l"; 'М' = "m"; 'Н' = "n"; 'О' = "o"; 'П' = "p"; 'Р' = "r"; 'С' = "s"; 'Т' = "t"; 'Й' = "y";
'У' = "u"; 'Ф' = "f"; 'Х' = "h"; 'Ц' = "ts"; 'Ч' = "ch"; 'Ш' = "sh"; 'Э' = "e"; 'Ю' = "yu"; 'Я' = "ya"
}
 
 
#$cred = Get-Credential
Add-PodeRoute -Path '/user_create' -Method Get -ScriptBlock {
# получаем только названия отделов
$dep = $($using:Departments)
# получаем только названия отделов
Write-PodeFileResponse -Path 'C:/_Scripts/views/form.pode' -ContentType 'text/html' -Data @{'Departments'= $dep; 'Domains' = $dom}
}
Add-PodeRoute -Path '/user_created' -Method 'POST' -ScriptBlock {
if (!($session)){
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://rmail2.radiofid.local/PowerShell/
Import-PSSession $Session -DisableNameChecking
}
# данные, полученные с формы
$form = $WebEvent.Data
# Получаем ФИО пользователя
# Фамилия
$GivenName = ($form['LastName'])[0].ToUpper() + ($form['LastName']).Substring(1,(($form['LastName']) - 1)).ToLower()
# Имя
$SurName = ($form['FirstName'])[0].ToUpper() + ($form['FirstName']).Substring(1,(($form['FirstName']) - 1)).ToLower()
# Отчество
$AltName = ($form['SecondName'])[0].ToUpper() + ($form['SecondName']).Substring(1,(($form['SecondName']) - 1)).ToLower()
# ФИО
if ($AltName -eq $null){
$FullName = "$GivenName $SurName"
} else {
$FullName = "$GivenName $SurName $AltName"
}
# формируем в латинице для логина первую букву имени
$First = $SurName[0]
$first_name = $fio["$First"]
# формируем в латинице для логина первую букву отчества
$Second = $AltName[0]
$Second_name = $fio["$Second"]
# формируем в латинице для логина буквы фамилии
$post_login = ''
$family = $GivenName[0..($GivenName.Length - 1)] | % {
$post_login += $fio["$_"]
}
# Логин
$logon = $first_name + $family
# Если логин существует, то формируем логин из двух первых букв имени
if (Get-ADUser -Identity $logon){
$logon = $first_name + $Second_name + $family
}
# получаем группу и OU из массива Departments
$dep_info = $Departments[$form['dep']]
# путь до OU
$ou = "OU=Users,OU=$($dep_info.OU),DC=domain,DC=local"
 
# Получаем имя почтового домена
$dom_info = $Domains[$form['dom']]
 
# создаем пользователя
New-ADUser -Name $full `
-GivenName $form['fullname'][1] `
-Surname $form['fullname'][0] `
-AccountPassword (ConvertTo-SecureString '123$qwe' -AsPlainText -Force) `
-ChangePasswordAtLogon $true `
-Enabled $true `
-UserPrincipalName ($logon + '@domain.local') `
-Path $ou `
-WhatIf
 
Enable-Mailbox -Identity $logon -PrimarySmtpAddress ($logon + $dom_info.domain) -Alias $logon -DisplayName $FullName -Database 'ALL_DB' -WhatIf
# добавляем в группы
$dep_info.groups | Add-ADGroupMember -Members $logon
# возвращаем информацию об успешном создании пользователя
Write-PodeHtmlResponse -Value '<BR><BR><center><font color="Green"><h1>Пользователь создан</h1></center>'
}
}
 

Всего записей: 22 | Зарегистр. 12-04-2023 | Отправлено: 17:59 03-08-2023
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru