dyshes90
03-10-2018, 10:25
Товарищи, доброго времени суток.
Есть скрипт для добавления пользователя в AD. Структура AD очень большая, с большим количеством OU для пользователей в 4 и 5 колене.
Есть окно формы -
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$form = New-Object System.Windows.Forms.Form
$form.Text = 'Новый сотрудник'
$form.Size = New-Object System.Drawing.Size(300,160)
$form.StartPosition = 'CenterScreen'
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Point(40,70)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = 'OK'
$OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form.AcceptButton = $OKButton
$form.Controls.Add($OKButton)
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Point(170,70)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = 'Cancel'
$CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $CancelButton
$form.Controls.Add($CancelButton)
$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,20)
$label.Size = New-Object System.Drawing.Size(280,20)
$label.Text = 'Подразделение'
$form.Controls.Add($label)
$textBox = New-Object System.Windows.Forms.TextBox
$textBox.Location = New-Object System.Drawing.Point(10,40)
$textBox.Size = New-Object System.Drawing.Size(260,20)
$form.Controls.Add($textBox)
$form.Topmost = $true
$form.Add_Shown({$textBox.Select()})
$result = $form.ShowDialog()
if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
$x = $textBox.Text
$x
}
куда вводим название нужной OU, например UIT.GK, вот полный путь до нее в AD - ou=uit.gk,ou=ui,ou=users,ou=base,dc=domain,dc=ru
Далее есть переменная -
$SetOU = get-ADOrganizationalUnit -filter 'Name -like $x' -SearchScope 'Subtree' -SearchBase "ou=base,dc=domain,dc=ru"
Она вроде как находит OU, но не может подставить в параметр -Path
Ошибка - New-ADUser : Не удается преобразовать "System.Object[]" в тип "System.String", необходимый для параметра "Path". Указанный метод не поддерживается.
Впр логично, то, что объект не может преобразоваться в строку, поэтому прошу помощи, а то я завис =)
По любому, кто-то, да сталкивался. Как сделать правильно?
Есть скрипт для добавления пользователя в AD. Структура AD очень большая, с большим количеством OU для пользователей в 4 и 5 колене.
Есть окно формы -
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$form = New-Object System.Windows.Forms.Form
$form.Text = 'Новый сотрудник'
$form.Size = New-Object System.Drawing.Size(300,160)
$form.StartPosition = 'CenterScreen'
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Point(40,70)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = 'OK'
$OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form.AcceptButton = $OKButton
$form.Controls.Add($OKButton)
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Point(170,70)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = 'Cancel'
$CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $CancelButton
$form.Controls.Add($CancelButton)
$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,20)
$label.Size = New-Object System.Drawing.Size(280,20)
$label.Text = 'Подразделение'
$form.Controls.Add($label)
$textBox = New-Object System.Windows.Forms.TextBox
$textBox.Location = New-Object System.Drawing.Point(10,40)
$textBox.Size = New-Object System.Drawing.Size(260,20)
$form.Controls.Add($textBox)
$form.Topmost = $true
$form.Add_Shown({$textBox.Select()})
$result = $form.ShowDialog()
if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
$x = $textBox.Text
$x
}
куда вводим название нужной OU, например UIT.GK, вот полный путь до нее в AD - ou=uit.gk,ou=ui,ou=users,ou=base,dc=domain,dc=ru
Далее есть переменная -
$SetOU = get-ADOrganizationalUnit -filter 'Name -like $x' -SearchScope 'Subtree' -SearchBase "ou=base,dc=domain,dc=ru"
Она вроде как находит OU, но не может подставить в параметр -Path
Ошибка - New-ADUser : Не удается преобразовать "System.Object[]" в тип "System.String", необходимый для параметра "Path". Указанный метод не поддерживается.
Впр логично, то, что объект не может преобразоваться в строку, поэтому прошу помощи, а то я завис =)
По любому, кто-то, да сталкивался. Как сделать правильно?