Powershell GUI и создание пользователей в AD
Начинаю понемногу изучать Powershell, и решил сразу сделать что-то полезное - например делегировать создание учетки в AD отделу HR.
Поскольку давать доступ к серверам им, понятное дело, никто не будет - решил сделать такую схему: 1. гуй на павершеле всю введенную инфу экспортирует в csv. 2. со стороны сервера второй скрипт импортирует этот csv и распихивает все ранее введенные данные по параметрам к командлету new-aduser. И в итоге мне остается только включить учетку, опционально присвоить пароль, раздать права и т.д. А все задрочки "как там правильно называется должность вот этого человека которого надо добавить в АД" отпадут. В общем нашел такой сайтец https://poshgui.com/Editor, накидал примерную форму. Но так и не понял как достать введенное в TextBox значение и использовать его далее? |
Смотреть, как устроены примеры:
1. Arposh http://blog.richprescott.com/2011/10...tion-anuc.html https://github.com/RichPrescott/UserCreation 2. Z-Hire Z-Hire Active Directory, Exchange, Lync, Office 365 User Creation Tool - https://gallery.technet.microsoft.co...ionin-e4854d6b |
Kazun, второй вариант не на павершеле а первый строит GUI с помощью XML. В принципе тоже вариант, попробую и так, но он менее удобен тем что придется всё вручную писать.
Но исходный вопрос остается открытым - как работать с введенным в TextBox значением? Может под спойлер картинки то? Чтоб говорить предметно - вот есть такая формочка: Код:
<# This form was created using POSHGUI.com a free online gui designer for PowerShell Ниже есть Label в котором написано useless text. По нажатию на кнопку "useless text" должен поменяться на "Textbox content" Павершелл выдает ошибку: Код:
The property 'text' cannot be found on this object. Verify that the property exists and can be set. |
Код:
function fApply { |
5 лет назад написал статью в codeproject про разные windows forms, wpf и повершел - посмотрите может что пригодится - 130 k views :-)
http://www.codeproject.com/Articles/...asic-Windows-F |
Цитата:
Код:
$TextBox.Name = "MyTextBox" Код:
function fApply { |
Цитата:
и как следствие не стоит браться автоматизировать то, что непонятно как работает Цитата:
|
Цитата:
Ну либо конструктивнее как-нибудь, пожалуйста. Цитата:
Цитата:
И я прекрасно понимаю что уже есть решения, что они работают, что они отлаженные и более функциональные. Но если просто скачать какой-то скрипт из интернета и запустить даблкликом - ничему не научишься. |
Charg, чтобы вносить изменения в AD не нужно по RDP конектиться к контроллеру домена
Если компьютер в домене и пользователь - доменный - у него уже все необходимые "доступы к серверам". И даже (по умолчанию) права на создание некоторых новых объектов в домене. Цитата:
Цитата:
равно как и в поле формы вписать ненужное вообще надеяться на проверку в форме - наивно. Нужно проверять корректность именно файла, и в нём ещё раз прочекать корректность/допустимость всех значений. |
Цитата:
Цитата:
Цитата:
Цитата:
Юзер, введя какое-то недопустимое значение в форму, должен сразу увидеть о том что что-то не так и ввести вместо этого корректное значение, что говорит о том что проверка на ввод в форме должна быть. А раз она там есть - какой смысл дублировать её еще и на импортирующей стороне? |
А не проще делегировать кадровикам создание пользователей в AD и поставить им на компьютеры RSAT?
|
DJ Mogarych, проще, но как я уже упомянул - цель не делегировать задачу, а научиться в павершелл путем решения какой-нибудь задачи - и эта просто подвернулась под руку.
|
Как создавать такие элементы?
Как ComboBox и TextBox только без возможности туда что-то вписать (ну и чтоб визуально было понятно что написать туда ничего нельзя. Скрытый текст
|
Код:
Add-Type -AssemblyName System.Windows.Forms |
Я бы токмо заменил:
Цитата:
Код:
$ComboBox.DropDownStyle = [System.Windows.Forms.ComboBoxStyle]::DropDownList |
Цитата:
|
Цитата:
|
Как лучше всего экспортировать данные введенные в гуй пользователями в csv?
Я себе это изначально представлял так: Скрытый текст
Код:
function fButtonClick { В результате (как мне хотелось) - появлялись бы по 1-му *.csv файлу на пользователя с именем login.csv. Но так оно не работает. Проблема в том что командлет new-aduser пробует добавить пользователя в любом случае (для того он всё-таки и нужен), а уже потом если указана опция -passthru - дополнительно шлет данные дальше по конвейеру. И получается что если у пользователя, запускающего скрипт, есть права на добавления пользователя в AD - пользователь добавляется (и шаг с экспортом\импортом становится бессмысленным), а если нету - выдает ошибку (и до экспорта дело не доходит). Выходит я выбрал неправильный подход к экспорту данных о пользователе. А какие еще могут быть варианты? Экспортировать я хочу объект со свойствами (1 объект = 1 пользователь), которые в дальнейшем пойдут на вход командлету new-aduser в импортирующий скрипт. Или шаг с экспортом\импортом вообще тухлая идея и нужно просто нужным людям раздать права на добавление пользователей в AD, поставить им RSAT (чтоб модуль содержащий командлеты для работы с AD установился) и пусть добавляют напрямую из GUI в AD? Так вроде много проще но... я не знаю какие могут быть подводные камни. |
Время: 05:24. |
Время: 05:24.
© OSzone.net 2001-