Я бы не рекомендовал разрешать пользователю вводить свои собственные данные и отправлять их прямо в активный каталог. Конечно, это будет зависеть от того, какую информацию вы запрашиваете у пользователя, и от количества полной свободы, которую вы хотите им предоставить при создании формы.
Я бы порекомендовал использовать WPF. В настоящее время я использую Visual Studios для разработки графического интерфейса пользователя (возможность видеть форму без запуска сценария powershell - это здорово, а мгновенное прерывание при ошибках позволяет мне быстро находить проблемы). Затем вы можете скопировать код XML в скрипт powershell и манипулировать / читать поля оттуда.
В качестве быстрого примера графического интерфейса в PowerShell (не гарантируется работа)
[xml]$form = @"
<Window
Title="MainWindow" Height="900" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Button Name="Button" Grid.Column="0">Test</Button>
</Grid>
</Window>
"@
$XMLreader = New-object System.Xml.XmlNodeReader $Form
$XMLForm = [Windows.Markup.XamlReader]::load($XMLreader)
$button= $XMLForm.FindName("Button")
$Button.add_Click({...code to execute on click...})
$XMLForm.ShowDialog()
Все в переменной $Form
копируется из проекта Visual Studio WPF. Затем вы можете назначить скрипты и код, которые будут выполняться при выполнении определенных действий, как показано на $Button.add_Click({})
В противном случае вы могли бы также использовать некоторые старые добрые Windows Forms для создания простого графического интерфейса, но я не использовал его некоторое время, поэтому у меня нет примера кода.