Question Symboles dans chaine de caractères

Plus d'informations
il y a 2 semaines 4 jours - il y a 2 semaines 4 jours #31054 par witness57
Bonjour,

Dans mon script, j'ai deux ligne parmi d'autres dans un bloc foreach-object:

$description = "GCU-ORG$USERS$" + $Classe


Pour la ligne ci-dessus, voilà ce que j'obtiens après import du champ description dans la console
utilisateurs active directory: GCU-ORG$305 plutôt que GCU-ORG$USERS$305
Il manque USERS (qui apparait en bleu dans mon bloc de code dans visuel code studio), il traite donc ça comme une variable du fait qu'il y ait le symbole $. Et comme cette variable est Null puisqu'elle ne renvoie à rien, il n'affiche rien.

$CN = $givenname + " " + $sn + " " + $identifiant


Concernant la deuxième ligne ci-dessus, j'aimerais mettre l'identifiant entre crochets, ça fait plus propre je trouve dans la console des utilisateurs active directory, car cet identifiant va venir s'ajouter aux nom et prénom de l'utilisateurs  dans la console.
Et le fait de mettre cet identifiant m'aidera aussi à faire un tri lorsque je devrais mettre à jour les utilisateurs.
En effet, pour l'instant, mon script ne fait que l'import des utilisateurs mais par la suite je compte le faire évoluer afin qu'il fasse automatiquement le tri des utilisateurs selon qu'ils sont présents ou non dans la fichier d'import csv.
J'ai donc bêtement ajouté les crochets devant et derrière $identifiants comme ceci:
$CN = $givenname + " " + $sn + " " + [$identifiant]


mais la aussi ça pose problème, je pense que c'est toujours lié au symbole et à comment il est interprété par powershell.

Y a t-il un moyen de ce servir de ces symboles en faisant comprendre à powershell qu'il ne doit pas les interprété comme des indicateurs de quelque chose, mais simplement comme un caractère ?

Merci
Dernière édition: il y a 2 semaines 4 jours par witness57.

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

Plus d'informations
il y a 2 semaines 4 jours #31056 par witness57
En fait c'est bon, ça fonctionne avec l'utilisation du backslash ` avant le symbole

"GCU-ORG`$USERS$" + $Classe

$CN = $givenname + " " + $sn + " " + "`[$identifiant`]"

Les caractères d'échappement sont utilisés pour attribuer une interprétation spéciale aux caractères qui les suivent.
Dans Windows PowerShell, le caractère d'échappement est le
backtick (`), également appelé accent grave (ASCII 96). Le
caractère d'échappement peut être utilisé pour indiquer un
littéral, une continuation de ligne et des caractères spéciaux.
forsenergy.com/fr-fr/windowspowershellhe...21e-4cef74213cfd.htm

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

Plus d'informations
il y a 2 semaines 4 jours - il y a 2 semaines 4 jours #31057 par witness57
Pour cette ligne là il n'y a même pas besoin du backtick, il suffit de mettre la variable avec les crochets entre guillemets pour que les crochets soient considérés comme de simples caractères:


$CN = $givenname + " " + $sn + " " + "[$identifiant]"


Par contre pour cette ligne:

$description = "GCU-ORG`$USERS$" + $Classe


La backtick est nécessaire pour le $

D'après mes tests
Dernière édition: il y a 2 semaines 4 jours par witness57.

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

Plus d'informations
il y a 2 semaines 4 jours #31058 par Laurent Dardenne
Salut,
pour le premier point soit tu échappes le caractère Dollar
"GCU-ORG`$USERS$" + $Classe
#GCU-ORG$USERS$
Soit tu n'utilises pas les guillemets double qui indiquent une substituion de variable :
'GCU-ORG$USERS$' + $Classe
#GCU-ORG$USERS$
L'autre point à connaitre est l'usage de cette construction "Debut${Milieu}Fin", ce qui évite de considérer la variable $MilieuFin lors de la substitution.

Tutoriels PowerShell

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

Plus d'informations
il y a 2 semaines 4 jours #31065 par witness57
Salut Laurent,
Merci pour ces précisions.

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

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