Question lister les UO dans des combobox

Plus d'informations
il y a 14 ans 7 mois #9972 par Durand
Bonjour, je suis nouveau sur le forum, même si j'ai déjà regardé beaucoup de sujets, et j'aimerais bien avoir un petit coup de main car je débute en Powershell et en programmation un peu aussi.

Donc j'ai pour le moment réussi à faire toute mes différentes formes, et j'ai réussi à lister les UO du domaine, mais je n'arrive pas à récupérer les nom des UO pour les mettre dans mes combobox.

Pour commencer je dois réaliser cela avec un Powershell natif.

L'objectif, est sous windows 7 sp1, de prendre un pc en local et de lui mettre le nom de d'ordinateur voulu puis de le mettre dans le domaine, en l'insérant directement dans la bonne UO.

Dans notre AD je précise qu'il y a plusieurs niveau dans l'arborescence pour les UO

[code:1]
######################################################
INTERFACE
#######################################################

[void][System.Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\"«»)
[void][System.Reflection.Assembly]::LoadWithPartialName(\"System.Drawing\"«»)

$Form1 = New-Object System.Windows.Forms.Form
$Form1.ClientSize = New-Object System.Drawing.Size(400, 400)
$form1.topmost = $true
$Form1.Text = \"Evo-Maj\"

$computerTitle = new-object System.Windows.Forms.Label
$computerTitle.Location = New-Object System.Drawing.Point(25, 50)
$computerTitle.Size = New-Object System.Drawing.Size(250, 20)
$computerTitle.Text = \"Nom du poste\"
$Form1.Controls.Add($computerTitle)


$computer = New-Object System.Windows.Forms.TextBox
$computer.Location = New-Object System.Drawing.Point(25, 75)
$computer.Size = New-Object System.Drawing.Size(250, 300)
$computer.Text = $NewComputerName
$Form1.Controls.Add($computer)


$comboBox1Title = new-object System.Windows.Forms.Label
$comboBox1Title.Location = New-Object System.Drawing.Point(25, 150)
$comboBox1Title.Size = New-Object System.Drawing.Size(250, 20)
$comboBox1Title.Text = \"1 ou 2:\"
$Form1.Controls.Add($comboBox1Title)

$sNames = (\"a,b,c,d,e\"«»)
$comboBox1 = New-Object System.Windows.Forms.ComboBox
$comboBox1.Location = New-Object System.Drawing.Point(25, 175)
$comboBox1.Size = New-Object System.Drawing.Size(250, 300)


$comboBox2Title = new-object System.Windows.Forms.Label
$comboBox2Title.Location = New-Object System.Drawing.Point(25, 210)
$comboBox2Title.Size = New-Object System.Drawing.Size(250, 20)
$comboBox2Title.Text = \"3 ou 4:\"
$Form1.Controls.Add($comboBox2Title)

$aNames = (\"f,g,h,i,j\"«»)
$comboBox2 = New-Object System.Windows.Forms.ComboBox
$comboBox2.Location = New-Object System.Drawing.Point(25, 235)
$comboBox2.Size = New-Object System.Drawing.Size(250, 300)

foreach($s in $sNames)
{
$comboBox1.Items.add($s)
}

foreach($a in $aNames)
{
$comboBox2.Items.add($a)
}

$Form1.Controls.Add($comboBox1)
$Form1.Controls.Add($comboBox2)

$Button = New-Object System.Windows.Forms.Button
$Button.Location = New-Object System.Drawing.Point(160, 350)
$Button.Size = New-Object System.Drawing.Size(100, 30)
$Button.Text = \"Lancer\"
$Button.add_Click({$label.Text =\"Insertion réussie de:\"+ $computer.Text +\" dans :\"+ $comboBox1.SelectedItem.ToString()+\" - \"+$comboBox2.SelectedItem.ToString()})
$Form1.Controls.Add($Button)

$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(20, 310)
$label.Size = New-Object System.Drawing.Size(350, 50)
$label.Text = \"\"
$Form1.Controls.Add($label)

[void]$form1.showdialog()



######################################################
SCRIPTS
######################################################


# renomme le poste
Function Rename-ComputerName ([string]$NewComputerName)
{
$ComputerInfo = Get-WmiObject -Class Win32_ComputerSystem
$ComputerInfo.rename($NewComputerName)
}
Rename-ComputerName \"NewComputerName\"


#liste la 1ére sous arboréscence d'UO
$objDomain = [ADSI]'LDAP://OU=A,DC=mon,DC=domaine'
$objRecherche = New-Object System.DirectoryServices.DirectorySearcher($objDomain)
$objRecherche.Filter='(objectCategory=organizationalUnit)'
$objRecherche.SearchScope='OneLevel'
$objRecherche.FindAll()

[/code:1]

Donc pour le 2ème script j'obtiens ma liste d'UO mais il me donne le \"path\" et j'aimerais n'avoir que le nom des UO pour les mettre dans la combobox.

Merci de votre aide

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 7 mois #10030 par Gabriel
Réponse de Gabriel sur le sujet Re:lister les UO dans des combobox
bonjour hayami
J'utilise le snapin ActiveRoles Management Shell for Active Directory , c'est gratuit.

avec tu as la commande get-QADObject qui te permet de recuperer les propriete de n'importe quel ogjet de l'ad. dans ton cas il faut faire cette commande

[code:1]
(Get-QADObject -identity \"OU=UtilisateursXP,DC=toto,DC=racine\"
-IncludedProperties 'ou').ou
[/code:1]

par defaut la commande remonte une petite liste de parametres de l'objet scanné, j'ai donc rajouter \"-IncludedProperties 'ou'\"

la commande ci-dessus te donne le resultat
\"UtilisateursXP\"

apluch

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.038 secondes
Propulsé par Kunena