Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
351 / 270 / 67
Регистрация: 12.12.2012
Сообщений: 2,131

Создание пользователей

15.10.2019, 09:58. Показов 2171. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Есть Excel с данными. Нужно создать локального пользователя, где из таблицы первая колонка серийного номера, есть пользователь, а седьмая, пароль.
Миниатюры
Создание пользователей  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2019, 09:58
Ответы с готовыми решениями:

Создание локальных пользователей
Есть сервер вне домена. Довольно часто приходится создавать пользователей в некотором кол-ве. Хотелось бы написать скрипт создания юзера,...

Создание Локальных Пользователей по шаблону
Добрый день есть необходимость в создании пользователей по шаблону Но основной вопрос состоит как доделать скрипт ,чтоб при первоэтапном...

Создание доменных пользователей в папке с раздачей прав
Добрый день! Прошу помощи в написании скрипта. Скрипт по замыслу должен создать на сетевом диске папки с именем пользователя по...

3
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.10.2019, 14:08
Цитата Сообщение от pEntity Посмотреть сообщение
Есть Excel с данными. Нужно создать локального пользователя, где из таблицы первая колонка серийного номера, есть пользователь, а седьмая, пароль.
Сохраняете этот excel-файл в csv, а дальше всё стандартно (и без всяких подсчётов колонок):

PowerShell
1
2
3
4
5
ForEach ($user in Import-Csv -Path .\users.csv -Delimiter ';' -Encoding UTF8)
{
    $SecPassword = ConvertTo-SecureString $user.Пароль -AsPlainText -Force
    New-LocalUser $user.Логин -Password $SecPassword -FullName $user."Серийный номер" -Description $user.Компания
}
1
351 / 270 / 67
Регистрация: 12.12.2012
Сообщений: 2,131
28.10.2019, 16:06  [ТС]
KDE777, а как его в csv так сохранить, чтоб три колонки стало с ;?

Я смог в общем только в txt сохранить так.

Но в итоге мне потребовалось сделать доменных юзеров и я сам сделал такой скрипт:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$File = "C:\test\test.txt"
 
$FileDB = Get-Content $File -Encoding UTF8
 
foreach( $Data in $FileDB ) 
{
    $Data = $Data -split(';')
 
    $Login = $Data[0]
    $Status = $Data[1]
    $Description = $Data[2]
    $Password = "12345678"
    [boolean]$bEnabled = $false
 
    $UserPrincipalName = $Login+"@fdo.local"
 
    $SecurePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
 
    if( $Status -eq "Заблокировано" )
    {
        $bEnabled = $false
    }
    else
    {
        $bEnabled = $true
    }
 
    write-host "Login:"$Login"-"$Status"-"$Description"-"$Password"-"$UserPrincipalName"-"$bEnabled
 
    New-ADUser -Name $Login -GivenName $Login -Surname $Login -SamAccountName $Login -Description $Description -UserPrincipalName $UserPrincipalName -Path "OU=Users,OU=SPDS,DC=fdo,DC=local" -AccountPassword $SecurePassword -CannotChangePassword $true -PasswordNeverExpires $true -Enabled $bEnabled
}
Еще вопрос не в тему. Как сократить ниже код, через выражение как в С\С++ ? Monday ? True : False

PowerShell
1
2
3
4
5
6
7
8
    if( $Status -eq "Заблокировано" )
    {
        $bEnabled = $false
    }
    else
    {
        $bEnabled = $true
    }
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.10.2019, 17:00
Цитата Сообщение от pEntity Посмотреть сообщение
как его в csv так сохранить, чтоб три колонки стало
Перед сохранением в csv можно удалить все ненужные колонки, но делать этого не нужно, т.к. Import-Csv в PS отлично считывает каждую строчку csv-файла в объект, у которого столько свойств, сколько колонок в исходной таблице и к каждому свойству можно обращаться по имени колонки не вычисляя никаких индексов и позиций...

Если трудно прочитать справку по Import-Csv, то хотя-бы посмотрите на пример в 3 строчки из ответа выше.

Цитата Сообщение от pEntity Посмотреть сообщение
PowerShell
1
2
3
4
$Data = $Data -split(';')
$Login = $Data[0]
$Status = $Data[1]
$Description = $Data[2]
А это яркий пример костыля-велосипеда для замены штатного Import-Csv

Добавлено через 5 минут
Цитата Сообщение от pEntity Посмотреть сообщение
PowerShell
1
write-host "Login:"$Login"-"$Status"-"$Description"-"$Password"-"$UserPrincipalName"-"$bEnabled
Кавычки не устали набирать? Вот это сделает тоже самое, причём и Write-Host не нужно:

PowerShell
1
"Login: $Login - $Status - $Description - $Password - $UserPrincipalName - $bEnabled"
Добавлено через 6 минут
Цитата Сообщение от pEntity Посмотреть сообщение
Как сократить ниже код
Вместо "Заблокировано" храните в исходной таблице значение статуса, как "0" или "1" и тогда if-else можно убрать совсем, а писать сразу так:

PowerShell
1
New-ADUser ... -Enabled ([boolean]$user.Статус)
Добавлено через 29 минут
Цитата Сообщение от pEntity Посмотреть сообщение
PowerShell
1
$UserPrincipalName = $Login+"@fdo.local"
Для UPN, так же не обязательно складывать строки:

PowerShell
1
"$Login@fdo.local"
и можно не плодить переменных, а сразу писать это в качестве значения ключа -UserPrincipalName у New-ADUser

+ т.к. очевидно, что скрипт запускается от доменного пользователя можно и имя домена не хардкодить, а сделать скрипт более универсальным:

PowerShell
1
"$login@$env:USERDNSDOMAIN"
Или получить суффикс для UPN, с помощью - Get-ADDomain

И совет из личного опыта: перед созданием пользователя проверять нет ли такого же SamAccountName у другого пользователя (чем больше пользователей в домене, тем чаще встречается такая ситуация) + нет ли такого же FullName в этом OU (полные тёзки в одном AD подразделение - встречается уже намного реже).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2019, 17:00
Помогаю со студенческими работами здесь

Связать группы пользователей из мастер защиты на уровне пользователей с должностями пользователей в БД
Интересный вопрос и интересно как его решить. Изначально условия следующие: один компьютер, один рабочий стол, одна база...

Создание пользователей
Здравствуйте. Создаю АРМ библиотекаря. У меня есть два пользователя. Админ и библиотекарь. Хочу сделать так, чтобы у библиотекаря были не...

Создание пользователей в AD
Всем доброго времени суток уважаемые форумчане. Есть ли способ создать сразу 37 пользователей в новом домене c одним и тем же паролем? ...

Создание нескольких пользователей
Всем привет! Кто подскажет что и куда написать для того, чтобы при выбора кнопки *гость* на других формах (их у меня всего 7 включая окно...

Создание групп пользователей
Нужна помощь Необходимо реализовать разделение зарегистрированных пользователей на 4 группы, как это лучше сделать или может быть есть у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru