PowerShell - Powershell GUI и создание пользователей в AD

Аватара пользователя
DJ Mogarych

Re: PowerShell - Powershell GUI и создание пользователей в AD

Сообщение DJ Mogarych »

А не проще делегировать кадровикам создание пользователей в AD и поставить им на компьютеры RSAT?
Аватара пользователя
Charg

Re: PowerShell - Powershell GUI и создание пользователей в AD

Сообщение Charg »

DJ Mogarych, проще, но как я уже упомянул - цель не делегировать задачу, а научиться в павершелл путем решения какой-нибудь задачи - и эта просто подвернулась под руку.
Аватара пользователя
Charg

Re: PowerShell - Powershell GUI и создание пользователей в AD

Сообщение Charg »

Как создавать такие элементы?

Как ComboBox и TextBox только без возможности туда что-то вписать (ну и чтоб визуально было понятно что написать туда ничего нельзя.



Скрытый текст

[spoiler]Изображение[/spoiler]
Аватара пользователя
Kazun

Re: PowerShell - Powershell GUI и создание пользователей в AD

Сообщение Kazun »

Код:

Код: Выделить всё

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()
Аватара пользователя
Iska

Re: PowerShell - Powershell GUI и создание пользователей в AD

Сообщение Iska »

Я бы токмо заменил:


Цитата Kazun:





Код:

Код: Выделить всё

$ComboBox.DropDownStyle = "DropDownList"

PowerShell - Powershell GUI и создание пользователей в AD




на:



Код:

Код: Выделить всё

$ComboBox.DropDownStyle         = [System.Windows.Forms.ComboBoxStyle]::DropDownList

дабы зараз привыкать к правильному стилю написания и пониманию, откуда сие берётся.
Аватара пользователя
YuS_2

Re: PowerShell - Powershell GUI и создание пользователей в AD

Сообщение YuS_2 »

Цитата Iska:



привыкать к правильному стилю написания
PowerShell - Powershell GUI и создание пользователей в AD




На паре форм ни привыкнуть, ни понять, наверное, не получится... тут мануалы по Windows Forms (WF) читать придется, как минимум. А ему сейчас на смену
дабпиэф
продвигают с более продвинутыми возможностями и функционалом, хотя пока ещё и схожим с WF. Но, как обычно, микрософт поплевал в сторону старой наработки, ибо трудозатратно развивать, и сказал, что будет исправлять и поддерживать, но обновлять и добавлять - ни-ни... такшта, лучше уж сразу на WPF замахиваться, если уж и изучать. Изображение
Аватара пользователя
Iska

Re: PowerShell - Powershell GUI и создание пользователей в AD

Сообщение Iska »

Цитата Charg:



Почему нужно проверять именно файл? Я вот вижу только минусы.
PowerShell - Powershell GUI и создание пользователей в AD




Проверять данные нужно как на этапе ввода из формы, так и сам файл перед внесением изменений в AD. Последнее можно исключить только в одном случае — если Вы, не генерируя никакого файла, зараз отрабатываете внесение изменений в AD непосредственно из формы.
Аватара пользователя
Charg

Re: PowerShell - Powershell GUI и создание пользователей в AD

Сообщение Charg »

Как лучше всего экспортировать данные введенные в гуй пользователями в csv?

Я себе это изначально представлял так:



Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

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? Так вроде много проще но... я не знаю какие могут быть подводные камни.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»