Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Создание пользователей в AD (с запросом данных) (http://forum.oszone.net/showthread.php?t=254666)

rudimko 22-02-2013 15:12 2096728

Создание пользователей в AD (с запросом данных)
 
Доброго дня, коллеги.

Возникла необходимость передать полномочия по созданию пользователей с заполнением некоторых атрибутов ответственным людям, которые не имеют никакого отношения к IT.
В связи с этим возникла мысль написать скрипт при запуске которого будут по порядку всплывать диалоговые окна для заполнения атрибутов и/или чтобы была возможно выбора для заполнения атрибутов (уже имеющийся набор). Если кто-то сможет помочь - буду крайне признателен.

Iska 22-02-2013 15:29 2096742

Цитата:

Цитата rudimko
будут по порядку всплывать диалоговые окна для заполнения атрибутов и/или чтобы была возможно выбора для заполнения атрибутов (уже имеющийся набор). »

Сделайте форму. Обычную форму.

rudimko 22-02-2013 15:44 2096757

Iska, можно поподробнее про форму? Не делал таких... )

exo 22-02-2013 15:53 2096766

Цитата:

Цитата rudimko
которые не имеют никакого отношения к IT »

а может просто делегировать им права на нужную OU, и будут они из GUI AD DS (или AD AC) создавать пользователей?

Iska 22-02-2013 15:58 2096768

Для ознакомления хватит и:
Windows PowerShell Tip: Creating a Custom Input Box
Building Forms with PowerShell – Part 1 (The Form) - Something About Scripting - Site Home - TechNet Blogs

Есть и подключаемые модули, расширяющие функционал или упрощающие взаимодействие. Я этим не занимался.

Kazun 22-02-2013 17:19 2096828

Active Directory User Creation tool 1.2

rudimko 22-02-2013 21:32 2096954

Iska, Kazun, Превосходно! Спасибо, как нарисую - напишу сюда, думаю на сл. неделе.
exo, нужное делегировано, но задачу нужно упростить "до не могу", исключить вероятность возможных ошибок и автоматизировать создание логина на основе фамилии и инициалов пользователя, тем самым сняв в себя повседневную обязанность по заведению новых учеток.
Еще раз всем спасибо, буду разбираться с новой недели.

rudimko 25-02-2013 10:46 2098449

Kazun, сценарий что надо, разобрал и отредактировал под свои нужны. Работает.
Но остался вопрос: samAccountName и userPrincipalName необходимо чтобы обрабатывались в транслите при вводе First Name и Last Name в кириллице. Как бы это правильно сделать? Курю дальше...

Iska 25-02-2013 10:56 2098450

Цитата:

Цитата rudimko
Как бы это правильно сделать? »

http://www.google.ru/search?q=powershell+translit

Kazun 25-02-2013 10:57 2098451

isazonov.wordpress.com/2012/05/17/транслитирация-имен-6/

rudimko 25-02-2013 11:13 2098457

Спасибо. Использовал этот:
Код:

#----------------------------------------------
#region Ф-ция транслита
#----------------------------------------------
function global:Translit {
        param([string]$inString)
    $Translit = @{
    [char]'а' = "a"
    [char]'А' = "a"
    [char]'б' = "b"
    [char]'Б' = "b"
    [char]'в' = "v"
    [char]'В' = "v"
    [char]'г' = "g"
    [char]'Г' = "g"
    [char]'д' = "d"
    [char]'Д' = "d"
    [char]'е' = "e"
    [char]'Е' = "e"
    [char]'ё' = "yo"
    [char]'Ё' = "eo"
    [char]'ж' = "zh"
    [char]'Ж' = "zh"
    [char]'з' = "z"
    [char]'З' = "z"
    [char]'и' = "i"
    [char]'И' = "i"
    [char]'й' = "j"
    [char]'Й' = "j"
    [char]'к' = "k"
    [char]'К' = "k"
    [char]'л' = "l"
    [char]'Л' = "l"
    [char]'м' = "m"
    [char]'М' = "m"
    [char]'н' = "n"
    [char]'Н' = "n"
    [char]'о' = "o"
    [char]'О' = "o"
    [char]'п' = "p"
    [char]'П' = "p"
    [char]'р' = "r"
    [char]'Р' = "r"
    [char]'с' = "s"
    [char]'С' = "s"
    [char]'т' = "t"
    [char]'Т' = "t"
    [char]'у' = "u"
    [char]'У' = "u"
    [char]'ф' = "f"
    [char]'Ф' = "f"
    [char]'х' = "h"
    [char]'Х' = "h"
    [char]'ц' = "ts"
    [char]'Ц' = "ts"
    [char]'ч' = "ch"
    [char]'Ч' = "ch"
    [char]'ш' = "sh"
    [char]'Ш' = "sh"
    [char]'щ' = "sch"
    [char]'Щ' = "sch"
    [char]'ъ' = ""
    [char]'Ъ' = ""
    [char]'ы' = "y"
    [char]'Ы' = "y"
    [char]'ь' = ""
    [char]'Ь' = ""
    [char]'э' = "e"
    [char]'Э' = "e"
    [char]'ю' = "yu"
    [char]'Ю' = "yu"
    [char]'я' = "ya"
    [char]'Я' = "ya"
    }
    $outCHR=""
    foreach ($CHR in $inCHR = $inString.ToCharArray())
        {
        if ($Translit[$CHR] -cne $Null )
            {$outCHR += $Translit[$CHR]}
        else
            {$outCHR += $CHR}
        }
    Write-Output $outCHR}
#endregion Function Translate


rudimko 26-02-2013 13:49 2099279

Кто может подсказать, как реализовать в форме строку для поиска пользователей по AD, чтобы впоследствии назначить в атрибут manager (Руководитель) и тоже самое для directReports (Подчиненные)?

alv1r 02-04-2014 16:14 2332077

Всем привет! Дабы не создавать новую тему, пишу в этой.
Есть скрипт для транслитерации, он отлично отрабатывает, но необходимо, чтобы он на выходе давал имя не в формате Имя Фамилия, а в формате первая буква имени точка, фамилия.
Т.е. не Ivanov Vasiliy, а v.ivanov.
Как сделать все буквы маленькими я знаю, а вот с этим вышел затык.
Код:

function global:Translit {

param([string]$inString)

$Translit= @{

[char]‘а’="a"

[char]‘А’="A"

[char]‘б’="b"

[char]‘Б’="B"

[char]‘в’="v"

[char]‘В’="V"

[char]‘г’="g"

[char]‘Г’="G"

[char]‘д’="d"

[char]‘Д’="D"

[char]‘е’="e"

[char]‘Е’="E"

[char]‘ё’="yo"

[char]‘Ё’="Yo"

[char]‘ж’="zh"

[char]‘Ж’="Zh"

[char]‘з’="z"

[char]‘З’="Z"

[char]‘и’="i"

[char]‘И’="I"

[char]‘й’="y"

[char]‘Й’="Y"

[char]‘к’="k"

[char]‘К’="K"

[char]‘л’="l"

[char]‘Л’="L"

[char]‘м’="m"

[char]‘М’="M"

[char]‘н’="n"

[char]‘Н’="N"

[char]‘о’="o"

[char]‘О’="O"

[char]‘п’="p"

[char]‘П’="P"

[char]‘р’="r"

[char]‘Р’="R"

[char]‘с’="s"

[char]‘С’="S"

[char]‘т’="t"

[char]‘Т’="T"

[char]‘у’="u"

[char]‘У’="U"

[char]‘ф’="f"

[char]‘Ф’="F"

[char]‘х’="kh"

[char]‘Х’="Kh"

[char]‘ц’="ts"

[char]‘Ц’="Ts"

[char]‘ч’="ch"

[char]‘Ч’="Ch"

[char]‘ш’="sh"

[char]‘Ш’="Sh"

[char]‘щ’="shch"

[char]‘Щ’="Shch"

[char]‘ъ’=""

[char]‘Ъ’=""

[char]‘ы’="y"

[char]‘Ы’="Y"

[char]‘ь’=""

[char]‘Ь’=""

[char]‘э’="e"

[char]‘Э’="E"

[char]‘ю’="yu"

[char]‘Ю’="Yu"

[char]‘я’="ya"

[char]‘Я’="Ya"

}

$outChars=""

foreach ($c in $inChars=$inString.ToCharArray())

{

if ($Translit[$c] -cne $Null )

{

$outChars+=$Translit[$c]

}

else

{

$outChars+=$c

}

}

Write-Output $outChars

}


$FirstName = read-host -Prompt "Имя"
$LastName = read-host -Prompt "Фамилия"

Translit  $LastName, $FirstName


Kazun 02-04-2014 16:19 2332083

Код:

PS > (Translit  "А.Петров").ToLower()
a.petrov


alv1r 02-04-2014 16:27 2332085

Не совсем так. Нужно из двух строк: Андрей и Петров, получить конструкцию вида: a.petrov

Kazun 02-04-2014 16:33 2332091

Код:

$f = "Анедрей"
$s = "Петров"

PS > (Translit "$($f[0]).$($s)").ToLower()
a.petrov



Время: 17:03.

Время: 17:03.
© OSzone.net 2001-