Question
Script ajout d'utilisateur avec windows Form
- Sinjk
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 99
- Remerciements reçus 0
il y a 7 ans 5 mois #27880
par Sinjk
Réponse de Sinjk sur le sujet Re:Script ajout d'utilisateur avec windows Form
Si tu as copié collé ton script tel quel, alors le if de ta combobox n'est pas bien fermé. J'ai fais les tests et avec le code suivant, j'ai bien le bon write-host correspondant au choix entre Oui et Non
[code:1]
if ($ComboboxMailresult -eq \"Oui\"«») {
write-host \"le resultat est oui\"
#lancement de la synchronisation avec azure AD
#Start-ADSyncSyncCycle -PolicyType delta
# temporisation durant la synchro ?
#connexion à exchange online
#$usercredential = get-credential
#connect‑msolservice –credential $credential
#$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
#Import-PSSession $Session -DisableNameChecking
# verification qu'il n'y pas d'utilisateur portant le meme nom et prenom
#$mailboxexist = get-mailbox -identity \"$UserPrincipalNameMin\"
#if ($mailboxexist -eq $null) {
#else {
#Show-Message -Message \"L'adresse mail $UserPrincipalNameMin existe déjà, voulez vous continuer ?\" -Titre \"Erreur\" -YesNo -IconErreur
#}
}
else {
write-host \"le resultat est Non\"
}
# reinitialisation des champs de saisie
[/code:1]
[code:1]
if ($ComboboxMailresult -eq \"Oui\"«») {
write-host \"le resultat est oui\"
#lancement de la synchronisation avec azure AD
#Start-ADSyncSyncCycle -PolicyType delta
# temporisation durant la synchro ?
#connexion à exchange online
#$usercredential = get-credential
#connect‑msolservice –credential $credential
#$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
#Import-PSSession $Session -DisableNameChecking
# verification qu'il n'y pas d'utilisateur portant le meme nom et prenom
#$mailboxexist = get-mailbox -identity \"$UserPrincipalNameMin\"
#if ($mailboxexist -eq $null) {
#else {
#Show-Message -Message \"L'adresse mail $UserPrincipalNameMin existe déjà, voulez vous continuer ?\" -Titre \"Erreur\" -YesNo -IconErreur
#}
}
else {
write-host \"le resultat est Non\"
}
# reinitialisation des champs de saisie
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- gaudefroy
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 32
- Remerciements reçus 0
il y a 7 ans 5 mois #27881
par gaudefroy
Réponse de gaudefroy sur le sujet Re:Script ajout d'utilisateur avec windows Form
Bon effectivement ça marche mieux comme ça.
Désolé je suis ridicule mais bizarrement powershell ISE ne m'a pas indiqué. comment passer du temps sur des bêtises

Le diable est dans le detail
Désolé je suis ridicule mais bizarrement powershell ISE ne m'a pas indiqué. comment passer du temps sur des bêtises
Le diable est dans le detail
Connexion ou Créer un compte pour participer à la conversation.
- Sinjk
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 99
- Remerciements reçus 0
il y a 7 ans 5 mois #27882
par Sinjk
Réponse de Sinjk sur le sujet Re:Script ajout d'utilisateur avec windows Form
Haha oui parfois ISE joue quelques tours !
Bon courage
SinJK
Bon courage
SinJK
Connexion ou Créer un compte pour participer à la conversation.
- gaudefroy
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 32
- Remerciements reçus 0
il y a 7 ans 5 mois #27895
par gaudefroy
Réponse de gaudefroy sur le sujet Re:Script ajout d'utilisateur avec windows Form
Toujours concernant ce même script, j'ai besoin de limiter la taille de mon Samaccountname qui ne peut pas depasser 20 caracteres dans l'ad.
Pour les gens qui ont un nom et unprenom très long cela pose problème.
Dans notre ad nous créons les utilisateurs avec prenom.nom et lorsqu'ils sont composés nous mettons un tiret.
J'ai reussi a passer cela maintenant je voudrais limiter, lorsque le prenom.nom font plus de 20 caracteres, le samaccountname
j'ai fait le code ci dessous mais maintenant si le samaccountname ait - de 20 caractères j'ai une erreur.
Comment écrire le fait que si le samccounname fait plus de 20 caractères alors il faut qu'il prenne les 20 premiers.
[code:1]
# recupération des valeurs des champs textbox
$addv = $Textboxprenom.Text
$addn = $Textboxnom.Text
$addVa = $Comboboxservice.Text
$addBa = $TextboxBa.Text
$ComboboxMailresult= $ComboboxMail.Text
$Comboboxcontratresult= $Comboboxcontrat.Text
$prenom = [Text.Encoding]::ASCII.GetString([Text.Encoding]::GetEncoding(1251).GetBytes(\"$addv\"«»))
$Nom = [Text.Encoding]::ASCII.GetString([Text.Encoding]::GetEncoding(1251).GetBytes(\"$addn\"«»))
#creation des variables générales
$DisplayName = (Get-Culture).textinfo.totitlecase(\"$prenom\" + \" \" + \"$nom\"«»)
$GivenName = (Get-Culture).textinfo.totitlecase($prenom)
$SamAccountName = (\"$prenom\" + \".\" + \"$nom\"«»).Substring(0,20) -replace ' ','-'
$SamAccountNameMin = $SamAccountName.ToLower()
$Surname = $nom
$Name = (Get-Culture).textinfo.totitlecase(\"$prenom\" + \" \" + \"$nom\"«»)
$UserPrincipalName = \"$prenom\" + \".\" + \"$nom\" + \"@domaine\" -replace ' ','-'
$UserPrincipalNameMin = $UserPrincipalName.ToLower()
$EmailAddress = \"$prenom\" + \".\" + \"$nom\" + \"@domaine\" -replace ' ','-'
$EmailAddressMin = $EmailAddress.ToLower()
$Password = $addBa
[/code:1]
le .substring(0,20) est la base du problème me semble t'il mais comment exprimer le fait qu'il doit prendre les 20 premiers caracteres si le prenom+nom est supérieur à la fin
Merci d'avance
Pour les gens qui ont un nom et unprenom très long cela pose problème.
Dans notre ad nous créons les utilisateurs avec prenom.nom et lorsqu'ils sont composés nous mettons un tiret.
J'ai reussi a passer cela maintenant je voudrais limiter, lorsque le prenom.nom font plus de 20 caracteres, le samaccountname
j'ai fait le code ci dessous mais maintenant si le samaccountname ait - de 20 caractères j'ai une erreur.
Comment écrire le fait que si le samccounname fait plus de 20 caractères alors il faut qu'il prenne les 20 premiers.
[code:1]
# recupération des valeurs des champs textbox
$addv = $Textboxprenom.Text
$addn = $Textboxnom.Text
$addVa = $Comboboxservice.Text
$addBa = $TextboxBa.Text
$ComboboxMailresult= $ComboboxMail.Text
$Comboboxcontratresult= $Comboboxcontrat.Text
$prenom = [Text.Encoding]::ASCII.GetString([Text.Encoding]::GetEncoding(1251).GetBytes(\"$addv\"«»))
$Nom = [Text.Encoding]::ASCII.GetString([Text.Encoding]::GetEncoding(1251).GetBytes(\"$addn\"«»))
#creation des variables générales
$DisplayName = (Get-Culture).textinfo.totitlecase(\"$prenom\" + \" \" + \"$nom\"«»)
$GivenName = (Get-Culture).textinfo.totitlecase($prenom)
$SamAccountName = (\"$prenom\" + \".\" + \"$nom\"«»).Substring(0,20) -replace ' ','-'
$SamAccountNameMin = $SamAccountName.ToLower()
$Surname = $nom
$Name = (Get-Culture).textinfo.totitlecase(\"$prenom\" + \" \" + \"$nom\"«»)
$UserPrincipalName = \"$prenom\" + \".\" + \"$nom\" + \"@domaine\" -replace ' ','-'
$UserPrincipalNameMin = $UserPrincipalName.ToLower()
$EmailAddress = \"$prenom\" + \".\" + \"$nom\" + \"@domaine\" -replace ' ','-'
$EmailAddressMin = $EmailAddress.ToLower()
$Password = $addBa
[/code:1]
le .substring(0,20) est la base du problème me semble t'il mais comment exprimer le fait qu'il doit prendre les 20 premiers caracteres si le prenom+nom est supérieur à la fin
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Sinjk
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 99
- Remerciements reçus 0
il y a 7 ans 5 mois #27896
par Sinjk
Réponse de Sinjk sur le sujet Re:Script ajout d'utilisateur avec windows Form
Hello,
Il te faut rassembler la longueur de la concaténation de tes caractères et ajouter une condition pour pouvoir limiter la saisie à 20 caractères max.
[code:1]
$p = \"John\"
$n=\"Doooooooooooooooe\"
$m = (\"$p\"+\".\"+\"$n\")
# Si la longueur excède 20 caractères, on limite à 20 carac max
if($m.Length -ge 20){
$i=$m.Substring(0,20)
$i
}
else # Sinon, on écrit la longueur entière du caractère
{
$s = $m.Substring(0,$m.Length)
$s
}
[/code:1]
Bon courage
;
Sinjk
EDIT: Je pense que l'erreur vient du fait que, si la longueur du prenom.nom est inférieure à 20, ça fait tout sauter ^^<br><br>Message édité par: Sinjk, à: 5/12/18 09:29
Il te faut rassembler la longueur de la concaténation de tes caractères et ajouter une condition pour pouvoir limiter la saisie à 20 caractères max.
[code:1]
$p = \"John\"
$n=\"Doooooooooooooooe\"
$m = (\"$p\"+\".\"+\"$n\")
# Si la longueur excède 20 caractères, on limite à 20 carac max
if($m.Length -ge 20){
$i=$m.Substring(0,20)
$i
}
else # Sinon, on écrit la longueur entière du caractère
{
$s = $m.Substring(0,$m.Length)
$s
}
[/code:1]
Bon courage
Sinjk
EDIT: Je pense que l'erreur vient du fait que, si la longueur du prenom.nom est inférieure à 20, ça fait tout sauter ^^<br><br>Message édité par: Sinjk, à: 5/12/18 09:29
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 7 ans 5 mois #27897
par Philippe
une autre ecriture
[code:1]$prenom = \"PowerShelleur\"
$nom = \"Débutant\"
\"$((\"$prenom\" + \".\" + \"$nom\"«»).Length) caractères\"
if ((\"$prenom\" + \".\" + \"$nom\"«»).Length -gt 20) {
$SamAccountName = (\"$prenom\" + \".\" + \"$nom\"«»).Substring(0,20) -replace ' ','-'
}
else {
$SamAccountName = (\"$prenom\" + \".\" + \"$nom\"«») -replace ' ','-'
}
$SamAccountName
$prenom = \"PowerSheller\"
$nom = \"Expert\"
\"$((\"$prenom\" + \".\" + \"$nom\"«»).Length) caractères\"
if ((\"$prenom\" + \".\" + \"$nom\"«»).Length -gt 20) {
$SamAccountName = (\"$prenom\" + \".\" + \"$nom\"«»).Substring(0,20) -replace ' ','-'
}
else {
$SamAccountName = (\"$prenom\" + \".\" + \"$nom\"«») -replace ' ','-'
}
$SamAccountName
[/code:1]
Réponse de Philippe sur le sujet Re:Script ajout d'utilisateur avec windows Form
exact, contrairement à d'autre langage, substring demande qu'il y ai au minimum la longueur demander dans la source sinon tu a une erreurEDIT: Je pense que l'erreur vient du fait que, si la longueur du prenom.nom est inférieure à 20, ça fait tout sauter ^^
une autre ecriture
[code:1]$prenom = \"PowerShelleur\"
$nom = \"Débutant\"
\"$((\"$prenom\" + \".\" + \"$nom\"«»).Length) caractères\"
if ((\"$prenom\" + \".\" + \"$nom\"«»).Length -gt 20) {
$SamAccountName = (\"$prenom\" + \".\" + \"$nom\"«»).Substring(0,20) -replace ' ','-'
}
else {
$SamAccountName = (\"$prenom\" + \".\" + \"$nom\"«») -replace ' ','-'
}
$SamAccountName
$prenom = \"PowerSheller\"
$nom = \"Expert\"
\"$((\"$prenom\" + \".\" + \"$nom\"«»).Length) caractères\"
if ((\"$prenom\" + \".\" + \"$nom\"«»).Length -gt 20) {
$SamAccountName = (\"$prenom\" + \".\" + \"$nom\"«»).Substring(0,20) -replace ' ','-'
}
else {
$SamAccountName = (\"$prenom\" + \".\" + \"$nom\"«») -replace ' ','-'
}
$SamAccountName
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.046 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Script ajout d'utilisateur avec windows Form