Question
Création compte AD en graphique..erreur embêtante
- TEST
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 15 ans 2 mois #9060
par TEST
Création compte AD en graphique..erreur embêtante a été créé par TEST
Bonjour à tous,
Nouveau sur ce forum (que je consulte malgré tout assez souvent), je suis confronté aujourd'hui à un souci qui pourtant avoir tout essayé n'est pas résolu à ce jour.
Je viens donc chercher de l'aide ici
Pour résumer le besoin, je veux créer une petite interface graphique qui va permettre de créer un compte dans active directory.
Pour la création du compte je demande le login du compte référent, les nom, prénom, login, description et date de fin de contrat (si CDD)du nouveau compte.
Jusque là ça va, et dans mon script je voulais introduire un petit bout qui va récupérer les groupes auxquels appartient le compte utilisateur référent et mettre dans ces groupes mon nouveau compte et c'est là que ça bloque..
J'ai sans cesse une erreur me disant que le serveur ne veut pas traiter la requête et je ne vois absolument pas quoi faire..
Ce qui est étrange c'est qu'en testant le bout de code qui fait ça à part ça fonctionne très bien..
Je vous colle mon code (je débute donc il y aura peut être des choses qui vous paraîtront illogique dedans..je suis ouvert à toute critique donc n'hésitez pas
)
[code:1]###########################################################################
################ Creation des utilisateurs Active Directory ###############
############################### Version 0.2 ###############################
[void][Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\")
Add-PSSnapin \"Quest.ActiveRoles.ADManagement\"
##################### Code pour Active Directory ########################
#
$domaineSMTP = \"@TEST.FR\"
$domaineLDAP = \"DC=TEST,DC=FR\"
$OU = 'OU=Utilisateurs,OU=Utilisateurs,OU=TEST'
$objOU = [ADSI]\"LDAP://$OU,$domaineLDAP\"
########################## Code pour le Forms #############################
#
#Je créer mes objets de forms
#
$Creer = New-Object System.Windows.Forms.Button
$Groupe = New-Object System.Windows.Forms.Button
$lbl_Loginreferent = new-object System.Windows.Forms.Label
$txtBoxLoginreferent = new-object System.Windows.Forms.TextBox
$lbl_prenom = new-object System.Windows.Forms.Label
$txtBoxPrenom = new-object System.Windows.Forms.TextBox
$lbl_nom = new-object System.Windows.Forms.Label
$txtBoxNom = new-object System.Windows.Forms.TextBox
$lbl_Description = new-object System.Windows.Forms.Label
$txtBoxDescription = new-object System.Windows.Forms.TextBox
$lbl_datecdd1 = new-object System.Windows.Forms.Label
$lbl_datecdd2 = new-object System.Windows.Forms.Label
$txtBoxdatecdd = new-object System.Windows.Forms.TextBox
$lbl_nouveau = new-object System.Windows.Forms.Label
$lbl_Loginnouveau = new-object System.Windows.Forms.Label
$txtBoxLoginnouveau = new-object System.Windows.Forms.TextBox
#
#
# Creer
#
$Creer.Text = \"Creer\"
$Creer.Location = New-Object System.Drawing.Size(253, 210)
$Creer.Size = New-Object System.Drawing.Size(90,30)
# Groupe
#
$Groupe.Text = \"Ajouter au groupe\"
$Groupe.Location = New-Object System.Drawing.Size(433, 210)
$Groupe.Size = New-Object System.Drawing.Size(90,30)
#
# lbl_Login
#
$lbl_Loginreferent.AutoSize = $true
$lbl_Loginreferent.Location = new-object System.Drawing.Point(38, 47)
$lbl_Loginreferent.Name = \"lbl_Loginreferent\"
$lbl_Loginreferent.Size = new-object System.Drawing.Size(21, 13)
$lbl_Loginreferent.TabIndex = 1
$lbl_Loginreferent.Text = \"Login référent :\"
#
# txtBoxLogin
#
$txtBoxLoginreferent.Location = new-object System.Drawing.Point(119, 44)
$txtBoxLoginreferent.Name = \"txtBoxLoginreferent\"
$txtBoxLoginreferent.Size = new-object System.Drawing.Size(100, 20)
$txtBoxLoginreferent.TabIndex = 2
#
# lbl_prenom
#
$lbl_prenom.AutoSize = $true
$lbl_prenom.Location = new-object System.Drawing.Point(56, 106)
$lbl_prenom.Name = \"lbl_prenom\"
$lbl_prenom.Size = new-object System.Drawing.Size(49, 13)
$lbl_prenom.TabIndex = 3
$lbl_prenom.Text = \"Prénom :\"
#
# txtBoxPrenom
#
$txtBoxPrenom.Location = new-object System.Drawing.Point(119, 104)
$txtBoxPrenom.Name = \"txtBoxPrenom\"
$txtBoxPrenom.Size = new-object System.Drawing.Size(100, 20)
$txtBoxPrenom.TabIndex = 4
#
# lbl_nom
#
$lbl_nom.AutoSize = $true
$lbl_nom.Location = new-object System.Drawing.Point(236, 106)
$lbl_nom.Name = \"lbl_nom\"
$lbl_nom.Size = new-object System.Drawing.Size(32, 13)
$lbl_nom.TabIndex = 5
$lbl_nom.Text = \"Nom :\"
#
# txtBoxNom
#
$txtBoxNom.Location = new-object System.Drawing.Point(273, 104)
$txtBoxNom.Name = \"txtBoxNom\"
$txtBoxNom.Size = new-object System.Drawing.Size(100, 20)
$txtBoxNom.TabIndex = 6
#
# lbl_Description
#
$lbl_Description.AutoSize = $true
$lbl_Description.Location = new-object System.Drawing.Point(39, 135)
$lbl_Description.Name = \"lbl_Description\"
$lbl_Description.Size = new-object System.Drawing.Size(66, 13)
$lbl_Description.TabIndex = 7
$lbl_Description.Text = \"Description :\"
#
# txtBoxDescription
#
$txtBoxDescription.Location = new-object System.Drawing.Point(119, 132)
$txtBoxDescription.Name = \"txtBoxDescription\"
$txtBoxDescription.Size = new-object System.Drawing.Size(407, 20)
$txtBoxDescription.TabIndex = 8
#
# lbl_nouveau
#
$lbl_nouveau.AutoSize = $true
$lbl_nouveau.Location = new-object System.Drawing.Point(195, 75)
$lbl_nouveau.Name = \"lbl_nouveau\"
$lbl_nouveau.Size = new-object System.Drawing.Size(21, 13)
$lbl_nouveau.TabIndex = 9
$lbl_nouveau.Text = \"INFORMATIONS NOUVEL UTILISATEUR\"
#
# lbl_datecdd1
#
$lbl_datecdd1.AutoSize = $true
$lbl_datecdd1.Location = new-object System.Drawing.Point(39, 160)
$lbl_datecdd1.Name = \"lbl_datecdd1\"
$lbl_datecdd1.Size = new-object System.Drawing.Size(60, 20)
$lbl_datecdd1.TabIndex = 10
$lbl_datecdd1.Text = \"Date de fin de contrat (JJ/MM/AAAA) :\"
#
# txtBoxdatecdd
#
$txtBoxdatecdd.Location = new-object System.Drawing.Point(235, 158)
$txtBoxdatecdd.Name = \"txtBoxdatecdd\"
$txtBoxdatecdd.Size = new-object System.Drawing.Size(90, 20)
$txtBoxdatecdd.TabIndex = 11
#
# lbl_datecdd2
#
$lbl_datecdd2.AutoSize = $true
$lbl_datecdd2.Location = new-object System.Drawing.Point(330, 160)
$lbl_datecdd2.Name = \"lbl_datecdd2\"
$lbl_datecdd2.Size = new-object System.Drawing.Size(60, 20)
$lbl_datecdd2.TabIndex = 12
$lbl_datecdd2.Text = \"(Ne rien mettre si CDI)\"
#
# lbl_Loginnouveau
#
$lbl_Loginnouveau.AutoSize = $true
$lbl_Loginnouveau.Location = new-object System.Drawing.Point(383, 106)
$lbl_Loginnouveau.Name = \"lbl_Loginnouveau\"
$lbl_Loginnouveau.Size = new-object System.Drawing.Size(30, 13)
$lbl_Loginnouveau.TabIndex = 13
$lbl_Loginnouveau.Text = \"Login :\"
#
# txtBoxLoginnouveau
#
$txtBoxLoginnouveau.Location = new-object System.Drawing.Point(426, 104)
$txtBoxLoginnouveau.Name = \"txtBoxLoginnouveau\"
$txtBoxLoginnouveau.Size = new-object System.Drawing.Size(100, 20)
$txtBoxLoginnouveau.TabIndex = 14
#
# Gestions pour Creer un utilisateurs
#
$Creer.Add_Click(
{
[bool]$OK = $false
[bool]$password = $true
#Variable pour récupérer la saisie des TexTBox
[string]$login_referent = $txtBoxLoginreferent.get_text()
[string]$Prenom = $txtBoxPrenom.get_text()
[string]$Nom = $txtBoxNom.get_text()
[string]$Description = $txtBoxDescription.get_text()
[string]$login_nouveau = $txtboxloginnouveau.get_text()
[string]$date_cdd = $txtboxdatecdd.get_text()
[string]$userCN=\"CN=$($Prenom) $($Nom)\"
if($login_referent -eq '')
{
$txtBoxLoginreferent.set_text('login du référent?')
}
elseif($Prenom -eq '')
{
$txtBoxPrenom.set_text('Veuillez saisir un prénom')
}
elseif($Nom -eq '')
{
$txtBoxNom.set_text('Veuillez saisir un nom')
}
elseif($login_nouveau -eq '')
{
$txtBoxLoginnouveau.set_text('login du nouveau?')
}
else{$OK = $true}
if ($OK -eq $true)
{
#Créer l'utilisateur dans l'AD
$objUser= $objOU.Create(\"user\",$userCN)
$objUser.put(\"sAMAccountName\", $login_nouveau)
$objUser.put(\"userPrincipalName\", $login_nouveau+$domaineSMTP)
$objUser.put('givenName', $Prenom)
$objUser.put('sn', $Nom)
$objUser.put('displayname', $Prenom+\" \"+$Nom)
if($Description -ne '')
{
$objUser.put('Description', $Description)
}
$objUser.SetInfo()
$objUser.SetPassword('aaaaaa')
#Permet d'activer le compte
$objUser.userAccountControl[0] = $objUser.userAccountControl[0] -band (-bnot 2)
$objUser.SetInfo()
get-qaduser | where-object -filter {$_.samaccountname -like $login_nouveau} | set-qaduser -usermustchangepassword $password
if($date_cdd -ne '')
{
$date_saisie = $date_cdd+\" 23:50:00\"
get-qaduser | where-object -filter {$_.samaccountname -like $login_nouveau} | set-qaduser -accountexpires $date_saisie
}
#Remise à zéro des champs
#$txtBoxLoginreferent.set_text('')
#$txtBoxLoginnouveau.set_text('')
#$txtBoxDescription.set_text('')
#$txtBoxNom.set_text('')
#$txtBoxPrenom.set_text('')
#$txtboxdatecdd.set_text('')
}
}
) ############################################ fin de \"creer\"
$Groupe.Add_Click(
{
[bool]$OK = $false
#Variable pour récupérer la saisie des TexTBox
[string]$login_referent = $txtBoxLoginreferent.get_text()
[string]$Prenom = $txtBoxPrenom.get_text()
[string]$Nom = $txtBoxNom.get_text()
[string]$login_nouveau = $txtboxloginnouveau.get_text()
[string]$userCN=\"CN=$($Prenom) $($Nom)\"
if($login_referent -eq '')
{
$txtBoxLoginreferent.set_text('login du référent?')
}
elseif($Prenom -eq '')
{
$txtBoxPrenom.set_text('Veuillez saisir un prénom')
}
elseif($Nom -eq '')
{
$txtBoxNom.set_text('Veuillez saisir un nom')
}
elseif($login_nouveau -eq '')
{
$txtBoxLoginnouveau.set_text('login du nouveau?')
}
else{$OK = $true}
if ($OK -eq $true)
{
$view = `
@{Label=\"Group\";`
Expression={$_.properties.name}}, `
@{Label=\"Member\";`
Expression={$_.properties.member -contains $user.distinguishedname}}
$cn_referent = get-qaduser | where-object -filter { $_.samaccountname -like $login_referent }
$user=[ADSI]\"LDAP://cn=$($cn_referent.name),OU=Utilisateurs,OU=Utilisateurs,OU=TEST,DC=TEST,DC=FR\"
$user
$searcher=[adsisearcher]\"(objectclass=group)\"
$searcher.searchroot=\"LDAP://DC=TEST,DC=FR\"
$searcher.findall() | Format-Table $view -a >> c:\groupe.txt
Gci \"c:\groupe.Txt\"|
Foreach {$CurrentFile=$_;$_}|
Get-Content|
Select-String -Pattern \"true\" |
Set-Content \"c:\resultat_groupe.txt\"
foreach ($i in (get-content \"c:\resultat_groupe.txt\"))
{$msg = $i
$msg -replace 'true','' >> c:\groupe_revu.txt
}
foreach ($i in (get-content \"c:\groupe_revu.txt\"))
{$msg = $i
$msg -replace ' ','' >> c:\groupe_revu2.txt
}
#remove-item c:\resultat_groupe.txt
#remove-item c:\groupe_revu.txt
foreach ($i in (get-content \"c:\groupe_revu2.txt\"))
{
write-host $i
$groupe = ([ADSI]\"LDAP://dc01/CN=$($i),OU=Groupes de Sécurité,OU=Groupes,OU=TEST,DC=TEST,DC=FR\")
write-host $groupe
$utilisateur = \"CN=\"+$userCN+\",OU=Utilisateurs,OU=Utilisateurs,OU=TEST,DC=TEST,DC=FR\"
write-host $utilisateur
$groupe.member += $utilisateur
$groupe.psbase.commitchanges()
}
remove-item c:\groupe.txt
#Remise à zéro des champs
#$txtBoxLoginreferent.set_text('')
#$txtBoxLoginnouveau.set_text('')
#$txtBoxDescription.set_text('')
#$txtBoxNom.set_text('')
#$txtBoxPrenom.set_text('')
#$txtboxdatecdd.set_text('')
}
}
)
#
#Je dessine mon forms
#
$Form1 = new-object System.Windows.Forms.form
# Form1
#
$Form1.ClientSize = new-object System.Drawing.Size(576, 250)
$Form1.Controls.Add($txtBoxDescription)
$Form1.Controls.Add($lbl_Description)
$Form1.Controls.Add($txtBoxNom)
$Form1.Controls.Add($lbl_nom)
$Form1.Controls.Add($txtBoxPrenom)
$Form1.Controls.Add($lbl_prenom)
$Form1.Controls.Add($txtBoxLoginreferent)
$Form1.Controls.Add($lbl_Loginreferent)
$Form1.Controls.Add($Creer)
$Form1.Controls.Add($Groupe)
$Form1.Controls.Add($lbl_nouveau)
$Form1.Controls.Add($lbl_datecdd1)
$Form1.Controls.Add($lbl_datecdd2)
$Form1.Controls.Add($txtBoxdatecdd)
$Form1.Controls.Add($txtBoxLoginnouveau)
$Form1.Controls.Add($lbl_Loginnouveau)
$Form1.Name = \"Form1\"
$Form1.Text = \"Ajout nouvel utilisateur\"
$Form1.ShowDialog()[/code:1]
Je vous remercie par avance pour l'aide que vous m'apporterez
<br><br>Message édité par: benoit27, à: 3/03/11 17:17
Nouveau sur ce forum (que je consulte malgré tout assez souvent), je suis confronté aujourd'hui à un souci qui pourtant avoir tout essayé n'est pas résolu à ce jour.
Je viens donc chercher de l'aide ici
Pour résumer le besoin, je veux créer une petite interface graphique qui va permettre de créer un compte dans active directory.
Pour la création du compte je demande le login du compte référent, les nom, prénom, login, description et date de fin de contrat (si CDD)du nouveau compte.
Jusque là ça va, et dans mon script je voulais introduire un petit bout qui va récupérer les groupes auxquels appartient le compte utilisateur référent et mettre dans ces groupes mon nouveau compte et c'est là que ça bloque..
J'ai sans cesse une erreur me disant que le serveur ne veut pas traiter la requête et je ne vois absolument pas quoi faire..
Ce qui est étrange c'est qu'en testant le bout de code qui fait ça à part ça fonctionne très bien..
Je vous colle mon code (je débute donc il y aura peut être des choses qui vous paraîtront illogique dedans..je suis ouvert à toute critique donc n'hésitez pas
[code:1]###########################################################################
################ Creation des utilisateurs Active Directory ###############
############################### Version 0.2 ###############################
[void][Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\")
Add-PSSnapin \"Quest.ActiveRoles.ADManagement\"
##################### Code pour Active Directory ########################
#
$domaineSMTP = \"@TEST.FR\"
$domaineLDAP = \"DC=TEST,DC=FR\"
$OU = 'OU=Utilisateurs,OU=Utilisateurs,OU=TEST'
$objOU = [ADSI]\"LDAP://$OU,$domaineLDAP\"
########################## Code pour le Forms #############################
#
#Je créer mes objets de forms
#
$Creer = New-Object System.Windows.Forms.Button
$Groupe = New-Object System.Windows.Forms.Button
$lbl_Loginreferent = new-object System.Windows.Forms.Label
$txtBoxLoginreferent = new-object System.Windows.Forms.TextBox
$lbl_prenom = new-object System.Windows.Forms.Label
$txtBoxPrenom = new-object System.Windows.Forms.TextBox
$lbl_nom = new-object System.Windows.Forms.Label
$txtBoxNom = new-object System.Windows.Forms.TextBox
$lbl_Description = new-object System.Windows.Forms.Label
$txtBoxDescription = new-object System.Windows.Forms.TextBox
$lbl_datecdd1 = new-object System.Windows.Forms.Label
$lbl_datecdd2 = new-object System.Windows.Forms.Label
$txtBoxdatecdd = new-object System.Windows.Forms.TextBox
$lbl_nouveau = new-object System.Windows.Forms.Label
$lbl_Loginnouveau = new-object System.Windows.Forms.Label
$txtBoxLoginnouveau = new-object System.Windows.Forms.TextBox
#
#
# Creer
#
$Creer.Text = \"Creer\"
$Creer.Location = New-Object System.Drawing.Size(253, 210)
$Creer.Size = New-Object System.Drawing.Size(90,30)
# Groupe
#
$Groupe.Text = \"Ajouter au groupe\"
$Groupe.Location = New-Object System.Drawing.Size(433, 210)
$Groupe.Size = New-Object System.Drawing.Size(90,30)
#
# lbl_Login
#
$lbl_Loginreferent.AutoSize = $true
$lbl_Loginreferent.Location = new-object System.Drawing.Point(38, 47)
$lbl_Loginreferent.Name = \"lbl_Loginreferent\"
$lbl_Loginreferent.Size = new-object System.Drawing.Size(21, 13)
$lbl_Loginreferent.TabIndex = 1
$lbl_Loginreferent.Text = \"Login référent :\"
#
# txtBoxLogin
#
$txtBoxLoginreferent.Location = new-object System.Drawing.Point(119, 44)
$txtBoxLoginreferent.Name = \"txtBoxLoginreferent\"
$txtBoxLoginreferent.Size = new-object System.Drawing.Size(100, 20)
$txtBoxLoginreferent.TabIndex = 2
#
# lbl_prenom
#
$lbl_prenom.AutoSize = $true
$lbl_prenom.Location = new-object System.Drawing.Point(56, 106)
$lbl_prenom.Name = \"lbl_prenom\"
$lbl_prenom.Size = new-object System.Drawing.Size(49, 13)
$lbl_prenom.TabIndex = 3
$lbl_prenom.Text = \"Prénom :\"
#
# txtBoxPrenom
#
$txtBoxPrenom.Location = new-object System.Drawing.Point(119, 104)
$txtBoxPrenom.Name = \"txtBoxPrenom\"
$txtBoxPrenom.Size = new-object System.Drawing.Size(100, 20)
$txtBoxPrenom.TabIndex = 4
#
# lbl_nom
#
$lbl_nom.AutoSize = $true
$lbl_nom.Location = new-object System.Drawing.Point(236, 106)
$lbl_nom.Name = \"lbl_nom\"
$lbl_nom.Size = new-object System.Drawing.Size(32, 13)
$lbl_nom.TabIndex = 5
$lbl_nom.Text = \"Nom :\"
#
# txtBoxNom
#
$txtBoxNom.Location = new-object System.Drawing.Point(273, 104)
$txtBoxNom.Name = \"txtBoxNom\"
$txtBoxNom.Size = new-object System.Drawing.Size(100, 20)
$txtBoxNom.TabIndex = 6
#
# lbl_Description
#
$lbl_Description.AutoSize = $true
$lbl_Description.Location = new-object System.Drawing.Point(39, 135)
$lbl_Description.Name = \"lbl_Description\"
$lbl_Description.Size = new-object System.Drawing.Size(66, 13)
$lbl_Description.TabIndex = 7
$lbl_Description.Text = \"Description :\"
#
# txtBoxDescription
#
$txtBoxDescription.Location = new-object System.Drawing.Point(119, 132)
$txtBoxDescription.Name = \"txtBoxDescription\"
$txtBoxDescription.Size = new-object System.Drawing.Size(407, 20)
$txtBoxDescription.TabIndex = 8
#
# lbl_nouveau
#
$lbl_nouveau.AutoSize = $true
$lbl_nouveau.Location = new-object System.Drawing.Point(195, 75)
$lbl_nouveau.Name = \"lbl_nouveau\"
$lbl_nouveau.Size = new-object System.Drawing.Size(21, 13)
$lbl_nouveau.TabIndex = 9
$lbl_nouveau.Text = \"INFORMATIONS NOUVEL UTILISATEUR\"
#
# lbl_datecdd1
#
$lbl_datecdd1.AutoSize = $true
$lbl_datecdd1.Location = new-object System.Drawing.Point(39, 160)
$lbl_datecdd1.Name = \"lbl_datecdd1\"
$lbl_datecdd1.Size = new-object System.Drawing.Size(60, 20)
$lbl_datecdd1.TabIndex = 10
$lbl_datecdd1.Text = \"Date de fin de contrat (JJ/MM/AAAA) :\"
#
# txtBoxdatecdd
#
$txtBoxdatecdd.Location = new-object System.Drawing.Point(235, 158)
$txtBoxdatecdd.Name = \"txtBoxdatecdd\"
$txtBoxdatecdd.Size = new-object System.Drawing.Size(90, 20)
$txtBoxdatecdd.TabIndex = 11
#
# lbl_datecdd2
#
$lbl_datecdd2.AutoSize = $true
$lbl_datecdd2.Location = new-object System.Drawing.Point(330, 160)
$lbl_datecdd2.Name = \"lbl_datecdd2\"
$lbl_datecdd2.Size = new-object System.Drawing.Size(60, 20)
$lbl_datecdd2.TabIndex = 12
$lbl_datecdd2.Text = \"(Ne rien mettre si CDI)\"
#
# lbl_Loginnouveau
#
$lbl_Loginnouveau.AutoSize = $true
$lbl_Loginnouveau.Location = new-object System.Drawing.Point(383, 106)
$lbl_Loginnouveau.Name = \"lbl_Loginnouveau\"
$lbl_Loginnouveau.Size = new-object System.Drawing.Size(30, 13)
$lbl_Loginnouveau.TabIndex = 13
$lbl_Loginnouveau.Text = \"Login :\"
#
# txtBoxLoginnouveau
#
$txtBoxLoginnouveau.Location = new-object System.Drawing.Point(426, 104)
$txtBoxLoginnouveau.Name = \"txtBoxLoginnouveau\"
$txtBoxLoginnouveau.Size = new-object System.Drawing.Size(100, 20)
$txtBoxLoginnouveau.TabIndex = 14
#
# Gestions pour Creer un utilisateurs
#
$Creer.Add_Click(
{
[bool]$OK = $false
[bool]$password = $true
#Variable pour récupérer la saisie des TexTBox
[string]$login_referent = $txtBoxLoginreferent.get_text()
[string]$Prenom = $txtBoxPrenom.get_text()
[string]$Nom = $txtBoxNom.get_text()
[string]$Description = $txtBoxDescription.get_text()
[string]$login_nouveau = $txtboxloginnouveau.get_text()
[string]$date_cdd = $txtboxdatecdd.get_text()
[string]$userCN=\"CN=$($Prenom) $($Nom)\"
if($login_referent -eq '')
{
$txtBoxLoginreferent.set_text('login du référent?')
}
elseif($Prenom -eq '')
{
$txtBoxPrenom.set_text('Veuillez saisir un prénom')
}
elseif($Nom -eq '')
{
$txtBoxNom.set_text('Veuillez saisir un nom')
}
elseif($login_nouveau -eq '')
{
$txtBoxLoginnouveau.set_text('login du nouveau?')
}
else{$OK = $true}
if ($OK -eq $true)
{
#Créer l'utilisateur dans l'AD
$objUser= $objOU.Create(\"user\",$userCN)
$objUser.put(\"sAMAccountName\", $login_nouveau)
$objUser.put(\"userPrincipalName\", $login_nouveau+$domaineSMTP)
$objUser.put('givenName', $Prenom)
$objUser.put('sn', $Nom)
$objUser.put('displayname', $Prenom+\" \"+$Nom)
if($Description -ne '')
{
$objUser.put('Description', $Description)
}
$objUser.SetInfo()
$objUser.SetPassword('aaaaaa')
#Permet d'activer le compte
$objUser.userAccountControl[0] = $objUser.userAccountControl[0] -band (-bnot 2)
$objUser.SetInfo()
get-qaduser | where-object -filter {$_.samaccountname -like $login_nouveau} | set-qaduser -usermustchangepassword $password
if($date_cdd -ne '')
{
$date_saisie = $date_cdd+\" 23:50:00\"
get-qaduser | where-object -filter {$_.samaccountname -like $login_nouveau} | set-qaduser -accountexpires $date_saisie
}
#Remise à zéro des champs
#$txtBoxLoginreferent.set_text('')
#$txtBoxLoginnouveau.set_text('')
#$txtBoxDescription.set_text('')
#$txtBoxNom.set_text('')
#$txtBoxPrenom.set_text('')
#$txtboxdatecdd.set_text('')
}
}
) ############################################ fin de \"creer\"
$Groupe.Add_Click(
{
[bool]$OK = $false
#Variable pour récupérer la saisie des TexTBox
[string]$login_referent = $txtBoxLoginreferent.get_text()
[string]$Prenom = $txtBoxPrenom.get_text()
[string]$Nom = $txtBoxNom.get_text()
[string]$login_nouveau = $txtboxloginnouveau.get_text()
[string]$userCN=\"CN=$($Prenom) $($Nom)\"
if($login_referent -eq '')
{
$txtBoxLoginreferent.set_text('login du référent?')
}
elseif($Prenom -eq '')
{
$txtBoxPrenom.set_text('Veuillez saisir un prénom')
}
elseif($Nom -eq '')
{
$txtBoxNom.set_text('Veuillez saisir un nom')
}
elseif($login_nouveau -eq '')
{
$txtBoxLoginnouveau.set_text('login du nouveau?')
}
else{$OK = $true}
if ($OK -eq $true)
{
$view = `
@{Label=\"Group\";`
Expression={$_.properties.name}}, `
@{Label=\"Member\";`
Expression={$_.properties.member -contains $user.distinguishedname}}
$cn_referent = get-qaduser | where-object -filter { $_.samaccountname -like $login_referent }
$user=[ADSI]\"LDAP://cn=$($cn_referent.name),OU=Utilisateurs,OU=Utilisateurs,OU=TEST,DC=TEST,DC=FR\"
$user
$searcher=[adsisearcher]\"(objectclass=group)\"
$searcher.searchroot=\"LDAP://DC=TEST,DC=FR\"
$searcher.findall() | Format-Table $view -a >> c:\groupe.txt
Gci \"c:\groupe.Txt\"|
Foreach {$CurrentFile=$_;$_}|
Get-Content|
Select-String -Pattern \"true\" |
Set-Content \"c:\resultat_groupe.txt\"
foreach ($i in (get-content \"c:\resultat_groupe.txt\"))
{$msg = $i
$msg -replace 'true','' >> c:\groupe_revu.txt
}
foreach ($i in (get-content \"c:\groupe_revu.txt\"))
{$msg = $i
$msg -replace ' ','' >> c:\groupe_revu2.txt
}
#remove-item c:\resultat_groupe.txt
#remove-item c:\groupe_revu.txt
foreach ($i in (get-content \"c:\groupe_revu2.txt\"))
{
write-host $i
$groupe = ([ADSI]\"LDAP://dc01/CN=$($i),OU=Groupes de Sécurité,OU=Groupes,OU=TEST,DC=TEST,DC=FR\")
write-host $groupe
$utilisateur = \"CN=\"+$userCN+\",OU=Utilisateurs,OU=Utilisateurs,OU=TEST,DC=TEST,DC=FR\"
write-host $utilisateur
$groupe.member += $utilisateur
$groupe.psbase.commitchanges()
}
remove-item c:\groupe.txt
#Remise à zéro des champs
#$txtBoxLoginreferent.set_text('')
#$txtBoxLoginnouveau.set_text('')
#$txtBoxDescription.set_text('')
#$txtBoxNom.set_text('')
#$txtBoxPrenom.set_text('')
#$txtboxdatecdd.set_text('')
}
}
)
#
#Je dessine mon forms
#
$Form1 = new-object System.Windows.Forms.form
# Form1
#
$Form1.ClientSize = new-object System.Drawing.Size(576, 250)
$Form1.Controls.Add($txtBoxDescription)
$Form1.Controls.Add($lbl_Description)
$Form1.Controls.Add($txtBoxNom)
$Form1.Controls.Add($lbl_nom)
$Form1.Controls.Add($txtBoxPrenom)
$Form1.Controls.Add($lbl_prenom)
$Form1.Controls.Add($txtBoxLoginreferent)
$Form1.Controls.Add($lbl_Loginreferent)
$Form1.Controls.Add($Creer)
$Form1.Controls.Add($Groupe)
$Form1.Controls.Add($lbl_nouveau)
$Form1.Controls.Add($lbl_datecdd1)
$Form1.Controls.Add($lbl_datecdd2)
$Form1.Controls.Add($txtBoxdatecdd)
$Form1.Controls.Add($txtBoxLoginnouveau)
$Form1.Controls.Add($lbl_Loginnouveau)
$Form1.Name = \"Form1\"
$Form1.Text = \"Ajout nouvel utilisateur\"
$Form1.ShowDialog()[/code:1]
Je vous remercie par avance pour l'aide que vous m'apporterez
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 15 ans 2 mois #9063
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Création compte AD en graphique..erreur embêtante
Salut,
benoit27 écrit:
Utilise Write-Debug pour vérifier la syntaxe de la commande.
Si toutefois elle est identique peux-tu nous la communiquer ?
Sinon coté script, pour :
[code:1][string]$date_cdd = $txtboxdatecdd.get_text()[/code:1]
Tu peux utiliser directement le membre Text et pas l'accesseur :
[code:1]
[string]$date_cdd = $txtboxdatecdd.Text[/code:1]
De plus, l'ajout du type [string] est optionnel.
Pour:
[code:1]if($login_referent -eq '')[/code:1]
La convention suivante est préférable :
[code:1]if($login_referent -eq [string]:Empty)[/code:1]
La saisie est plus long, mais on évite les possibles coquilles (' ').
Toujours par convention, tu peux aussi indenter les segments de pipelines de la manière suivantes :
[code:1] get-qaduser |
where-object -filter {$_.samaccountname -like $login_nouveau} |
set-qaduser -usermustchangepassword $password[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 3/03/11 20:13
benoit27 écrit:
Peut-être que ta construction d'appel est erronée dans la Winform...Ce qui est étrange c'est qu'en testant le bout de code qui fait ça à part ça fonctionne très bien..
Utilise Write-Debug pour vérifier la syntaxe de la commande.
Si toutefois elle est identique peux-tu nous la communiquer ?
Sinon coté script, pour :
[code:1][string]$date_cdd = $txtboxdatecdd.get_text()[/code:1]
Tu peux utiliser directement le membre Text et pas l'accesseur :
[code:1]
[string]$date_cdd = $txtboxdatecdd.Text[/code:1]
De plus, l'ajout du type [string] est optionnel.
Pour:
[code:1]if($login_referent -eq '')[/code:1]
La convention suivante est préférable :
[code:1]if($login_referent -eq [string]:Empty)[/code:1]
La saisie est plus long, mais on évite les possibles coquilles (' ').
Toujours par convention, tu peux aussi indenter les segments de pipelines de la manière suivantes :
[code:1] get-qaduser |
where-object -filter {$_.samaccountname -like $login_nouveau} |
set-qaduser -usermustchangepassword $password[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 3/03/11 20:13
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 2 mois #9069
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Création compte AD en graphique..erreur embêtante
Bonjour,
Pour contribuer un peu à tout cela, personellement j'utiliserais plutôt :
[code:1]if([string]::IsNullOrEmpty($login_referent)){ ... }[/code:1]
Cela rajoute aussi la vérification si la variable contient $null, voir on peut encore améliorer cela avec :
[code:1]if([string]::IsNullOrEmpty($login_referent.Trim())){ ... }[/code:1]
La fonction Trim() supprime tout les espaces avant et après. Cela évite que un petit malin remplisse le champ avec uniquement des espace.
Bien Cordialement,
Pour contribuer un peu à tout cela, personellement j'utiliserais plutôt :
[code:1]if([string]::IsNullOrEmpty($login_referent)){ ... }[/code:1]
Cela rajoute aussi la vérification si la variable contient $null, voir on peut encore améliorer cela avec :
[code:1]if([string]::IsNullOrEmpty($login_referent.Trim())){ ... }[/code:1]
La fonction Trim() supprime tout les espaces avant et après. Cela évite que un petit malin remplisse le champ avec uniquement des espace.
Bien Cordialement,
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- TEST
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 15 ans 2 mois #9072
par TEST
Réponse de TEST sur le sujet Re:Création compte AD en graphique..erreur embêtante
Merci à vous deux pour vos réponses.
J'ai finalement trouvé mon erreur...
Celle-ci venait de :
[code:1]$user=[ADSI]\"LDAP://cn=$($cn_referent.name),OU=Utilisateurs,OU=Utilisateurs,OU=TEST,DC=TEST,DC=FR\"[/code:1]
C'était le \"cn=\" qui était en trop..ça fonctionne parfaitement maintenant
Je vais néanmoins le corriger avec vos propositions afin d'avoir quelque chose de plus propre et plus conventionnel.
Je vous remercie bien en tout cas
J'ai finalement trouvé mon erreur...
Celle-ci venait de :
[code:1]$user=[ADSI]\"LDAP://cn=$($cn_referent.name),OU=Utilisateurs,OU=Utilisateurs,OU=TEST,DC=TEST,DC=FR\"[/code:1]
C'était le \"cn=\" qui était en trop..ça fonctionne parfaitement maintenant
Je vais néanmoins le corriger avec vos propositions afin d'avoir quelque chose de plus propre et plus conventionnel.
Je vous remercie bien en tout cas
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 15 ans 2 mois #9079
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Création compte AD en graphique..erreur embêtante
Richard Lazaro écrit:
Richard Lazaro écrit:
Oui tout à fait, mais cela reste, comme tu le dis implicitement, lié au comportement des composants Winform/WPF :voir on peut encore améliorer cela avec :
[code:1]if([string]::IsNullOrEmpty($login_referent.Trim())){ ... }[/code:1]
Richard Lazaro écrit:
Car dans la console, si la variable $login_referent contient $null, dans ce cas l'appel à Trim échoue.<br><br>Message édité par: Laurent Dardenne, à: 4/03/11 22:07Cela évite que un petit malin remplisse le champ avec uniquement des espace.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 2 mois #9084
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Création compte AD en graphique..erreur embêtante
Oui, j'y ai pensé juste après le posting.
ont peut alors caster en [string] mais alors la vérification du null est inutile.
Donc peut être que la solution la plus logique serait :
[code:1]if(([string]$login_referent).Trim() -eq [string]:Empty) { ... }[/code:1]
Bien Cordialement,
Richard Lazaro.
ont peut alors caster en [string] mais alors la vérification du null est inutile.
Donc peut être que la solution la plus logique serait :
[code:1]if(([string]$login_referent).Trim() -eq [string]:Empty) { ... }[/code:1]
Bien Cordialement,
Richard Lazaro.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.055 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Création compte AD en graphique..erreur embêtante