Question Script ajout d'utilisateur avec windows Form

Plus d'informations
il y a 7 ans 5 mois #27880 par Sinjk
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]

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

Plus d'informations
il y a 7 ans 5 mois #27881 par gaudefroy
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 :S :dry:

Le diable est dans le detail

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

Plus d'informations
il y a 7 ans 5 mois #27882 par Sinjk
Haha oui parfois ISE joue quelques tours !

Bon courage :)

SinJK

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

Plus d'informations
il y a 7 ans 5 mois #27895 par gaudefroy
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

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

Plus d'informations
il y a 7 ans 5 mois #27896 par Sinjk
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

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

Plus d'informations
il y a 7 ans 5 mois #27897 par Philippe

EDIT: Je pense que l'erreur vient du fait que, si la longueur du prenom.nom est inférieure à 20, ça fait tout sauter ^^

exact, contrairement à d'autre langage, substring demande qu'il y ai au minimum la longueur demander dans la source sinon tu a une erreur

une autre ecriture
[code:1]$prenom = \&quot;PowerShelleur\&quot;
$nom = \&quot;Débutant\&quot;
\&quot;$((\&quot;$prenom\&quot; + \&quot;.\&quot; + \&quot;$nom\&quot;«»).Length) caractères\&quot;

if ((\&quot;$prenom\&quot; + \&quot;.\&quot; + \&quot;$nom\&quot;«»).Length -gt 20) {
$SamAccountName = (\&quot;$prenom\&quot; + \&quot;.\&quot; + \&quot;$nom\&quot;«»).Substring(0,20) -replace ' ','-'
}
else {
$SamAccountName = (\&quot;$prenom\&quot; + \&quot;.\&quot; + \&quot;$nom\&quot;«») -replace ' ','-'
}
$SamAccountName

$prenom = \&quot;PowerSheller\&quot;
$nom = \&quot;Expert\&quot;
\&quot;$((\&quot;$prenom\&quot; + \&quot;.\&quot; + \&quot;$nom\&quot;«»).Length) caractères\&quot;

if ((\&quot;$prenom\&quot; + \&quot;.\&quot; + \&quot;$nom\&quot;«»).Length -gt 20) {
$SamAccountName = (\&quot;$prenom\&quot; + \&quot;.\&quot; + \&quot;$nom\&quot;«»).Substring(0,20) -replace ' ','-'
}
else {
$SamAccountName = (\&quot;$prenom\&quot; + \&quot;.\&quot; + \&quot;$nom\&quot;«») -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
Propulsé par Kunena