|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Powershell GUI и создание пользователей в AD |
|
PowerShell - Powershell GUI и создание пользователей в AD
|
Ветеран Сообщения: 2798 |
Профиль | Отправить PM | Цитировать
Начинаю понемногу изучать Powershell, и решил сразу сделать что-то полезное - например делегировать создание учетки в AD отделу HR.
Поскольку давать доступ к серверам им, понятное дело, никто не будет - решил сделать такую схему: 1. гуй на павершеле всю введенную инфу экспортирует в csv. 2. со стороны сервера второй скрипт импортирует этот csv и распихивает все ранее введенные данные по параметрам к командлету new-aduser. И в итоге мне остается только включить учетку, опционально присвоить пароль, раздать права и т.д. А все задрочки "как там правильно называется должность вот этого человека которого надо добавить в АД" отпадут. В общем нашел такой сайтец https://poshgui.com/Editor, накидал примерную форму. Но так и не понял как достать введенное в TextBox значение и использовать его далее? |
|
Отправлено: 14:10, 04-01-2019 |
fascinating rhythm Сообщения: 6619
|
Профиль | Отправить PM | Цитировать А не проще делегировать кадровикам создание пользователей в AD и поставить им на компьютеры RSAT?
|
------- Отправлено: 20:15, 05-01-2019 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2798
|
Профиль | Отправить PM | Цитировать DJ Mogarych, проще, но как я уже упомянул - цель не делегировать задачу, а научиться в павершелл путем решения какой-нибудь задачи - и эта просто подвернулась под руку.
|
Отправлено: 21:03, 05-01-2019 | #12 |
Ветеран Сообщения: 2798
|
Профиль | Отправить PM | Цитировать Как создавать такие элементы?
Как ComboBox и TextBox только без возможности туда что-то вписать (ну и чтоб визуально было понятно что написать туда ничего нельзя. Скрытый текст
|
Последний раз редактировалось Charg, 06-01-2019 в 15:25. Отправлено: 14:59, 06-01-2019 | #13 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName PresentationFramework [System.Windows.Forms.Application]::EnableVisualStyles() $Form = New-Object system.Windows.Forms.Form $Form.ClientSize = '400,400' $Form.text = "Form" $Form.TopMost = $false $TextBox = New-Object system.Windows.Forms.TextBox $TextBox.multiline = $false $TextBox.text = "ReadOnly Text" $TextBox.width = 100 $TextBox.height = 20 $TextBox.location = New-Object System.Drawing.Point(150,50) $TextBox.Font = 'Microsoft Sans Serif,10' $TextBox.ReadOnly = $true $ComboBox = New-Object system.Windows.Forms.ComboBox $ComboBox.text = "comboBox" $ComboBox.width = 100 $ComboBox.height = 20 $ComboBox.location = New-Object System.Drawing.Point(150,81) $ComboBox.Font = 'Microsoft Sans Serif,10' $ComboBox.DropDownStyle = "DropDownList" $ComboBox.Items.AddRange(@( "One","Two","Three","Four" )) $Button = New-Object System.Windows.Forms.Button $Button.Location = New-Object System.Drawing.Point(150, 120) $Button.Size = New-Object System.Drawing.Size(98, 23) $Button.Text = "Output" $Button.add_Click({[System.Windows.MessageBox]::Show($ComboBox.SelectedItem.ToString())}) $Form.controls.AddRange(@($ComboBox,$TextBox,$Button)) $Form.ShowDialog() |
Последний раз редактировалось Kazun, 06-01-2019 в 15:40. Отправлено: 15:33, 06-01-2019 | #14 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Я бы токмо заменил:
Цитата Kazun:
дабы зараз привыкать к правильному стилю написания и пониманию, откуда сие берётся. |
|
Отправлено: 01:32, 07-01-2019 | #15 |
Crazy Сообщения: 1217
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
------- Отправлено: 07:33, 07-01-2019 | #16 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Charg:
|
|
Отправлено: 05:41, 09-01-2019 | #17 |
Ветеран Сообщения: 2798
|
Профиль | Отправить PM | Цитировать Как лучше всего экспортировать данные введенные в гуй пользователями в csv?
Я себе это изначально представлял так: Скрытый текст
function fButtonClick { # user-defined variables [string]$name = $givenNameTextBox.text [string]$surname = $snTextBox.text [string]$fullname = "$surname $name" [string]$title = $titleTextBox.text [string]$dept = $departmentTextBox.text [string]$company = $companyTextBox.text [string]$login = $loginTextBox.text [string]$emailaddress = "$login" + "@" + "$domainoption1" [string]$upn = "$login$domainsuffix" $ADParams = @{ Path = $ADPath Name = $fullname GivenName = $name Surname = $surname DisplayName = $fullname Company = $company Department = $dept Title = $title SamAccountName = $login EmailAddress = $emailaddress UserPrincipalName = $upn } # save user with all params as an object inside csv New-ADUser @ADParams -PassThru | Export-Csv -Path ("$exportPath"+'\'+"$login"+".csv") -Encoding UTF8 } В результате (как мне хотелось) - появлялись бы по 1-му *.csv файлу на пользователя с именем login.csv. Но так оно не работает. Проблема в том что командлет new-aduser пробует добавить пользователя в любом случае (для того он всё-таки и нужен), а уже потом если указана опция -passthru - дополнительно шлет данные дальше по конвейеру. И получается что если у пользователя, запускающего скрипт, есть права на добавления пользователя в AD - пользователь добавляется (и шаг с экспортом\импортом становится бессмысленным), а если нету - выдает ошибку (и до экспорта дело не доходит). Выходит я выбрал неправильный подход к экспорту данных о пользователе. А какие еще могут быть варианты? Экспортировать я хочу объект со свойствами (1 объект = 1 пользователь), которые в дальнейшем пойдут на вход командлету new-aduser в импортирующий скрипт. Или шаг с экспортом\импортом вообще тухлая идея и нужно просто нужным людям раздать права на добавление пользователей в AD, поставить им RSAT (чтоб модуль содержащий командлеты для работы с AD установился) и пусть добавляют напрямую из GUI в AD? Так вроде много проще но... я не знаю какие могут быть подводные камни. |
Отправлено: 14:55, 14-01-2019 | #18 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - GUI PowerShell - помогите понять пару моментов | UpDaTe | Скриптовые языки администрирования Windows | 3 | 27-11-2012 23:44 | |
Разное - Зависает GUI | Bibelwort | Microsoft Windows 2000/XP | 5 | 26-08-2011 08:27 | |
Не работает GUI после выхода другова GUI | sashadeg | AutoIt | 3 | 15-05-2009 22:03 | |
c++ с gui | sad koder | Программирование и базы данных | 3 | 16-06-2004 08:51 | |
Мplayer -gui | kitov | Программное обеспечение Linux и FreeBSD | 11 | 10-06-2003 09:15 |
|