Question Comparer 2 chaine avec retour chariots

Plus d'informations
il y a 13 ans 7 mois #12781 par Gabriel
Bonjour

alors voila je recupere une chaine de l'AD qui contient plusieurs lignes (en l'occurrence l'entree streerAddress), elle apparait comme ca

[code:1]
$ChaineAD = (get-qaduser tonic8).streetAddress

PS C:\>$ChaineAD
place de l'étoile
Paris 08
France
[/code:1]

d'autre part je génére une chaine a partir d'une bdd qui contient plusieurs champs en une seule ligne (streetAddress n'accepte qu'une ligne)

[code:1]
$ChaineGe = \"place de l'étoile\" + \"`r`n\" + \"Paris 08\" + \"`r`n\" + \"France\"

PS C:\>$ChaineGe
\"place de l'étoile`r`nParis 08`r`nFrance\"
[/code:1]

Donc qunad je les compare les 2 chaines sont evidement differentes, la question est comment jouer la transformation pour que finalement $ChaineGe ressemble à $ChaineAD...

merci d'avance. :)

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

Plus d'informations
il y a 13 ans 7 mois #12783 par xyz
Salut,
peux-tu nous communiquer le type du champ AD que tu interroges ?

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 7 mois #12786 par Gabriel
Bonjour Laurent

il s'agit du champs streetAddress de type directoryString. Ce chmaps contrairement a proxyAddresses (qui est aussi un directoryString) n'accepte pas \"plusieurs ligne\".

proxyaddresses accepte plusieurs emails (1 par ligne)
streetAddress lui n'accepte qu'une seule ligne (mais contenant les caractere retour chariot et nouvelle ligne).

entre temps j'ai compris pourquoi ma comparaison est $False, lors de la generation de l'adresse pour comparaison j'ai mixé les \"'\" et les '\"'
[code:1]
$sCompteSTREETADDRESS = 'Desk`t: ' + $($oCompte.desk) + '`r`n'
$sCompteSTREETADDRESS += \"Office`t: \" + $($oCompte.officeName) + '`r`n'
$sCompteSTREETADDRESS += \"Floor`t: \" + $($oCompte.floorName) + '`r`n'
$sCompteSTREETADDRESS += \"Building`t: \" + $($oCompte.buildingName) + '`r`n'
$sCompteSTREETADDRESS += \"City`t: \" + $($oCompte.city) + '`r`n'
$sCompteSTREETADDRESS += \"Country`t: \" + $($oCompte.country)
[/code:1]

ce qui fait une string a comparer comme ceci
[code:1]
\"Desk`t: `r`nOffice : `r`nFloor : `r`n\"
[/code:1]

apres avoir mis des \" partout la comparaison se fait correctement.

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

Plus d'informations
il y a 13 ans 7 mois #12787 par Gabriel
Bon maintenant j'ai un autre effet de bord que nous dirons cosmetique
:side:

Dans mon process si la string est differente je genere une commande que je met dans un fichier de script powershell pour l'executer plus tard
donc on avait avant
[code:1]
set-qaduser tonic8 -ObjectAttributes @{streetAddress=\"Desk`t: `r`nOffice : 8989`r`nFloor : 13`r`nBuilding : rue du ahahah`r`nCity : hohoho`r`nCountry : FRANCE\";}
[/code:1]

[code:1]
set-qaduser tonic8 -ObjectAttributes @{streetAddress=\"Desk :
Office : 8989
Floor : 13
Building : rue du ahahah
City : hohoho
Country : FRANCE\";}
[/code:1]

ce qui fonctionne mais genere un fichier absolument pourri a lire/relire :-(

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

Plus d'informations
il y a 13 ans 7 mois #12788 par Gabriel
:laugh:

A pus qu'a reprendre ma fonction et faire l'inverse, c'est a dire recuperer les infos dans l'AD et la convertire comme il faut

[code:1]
(get-qaduser tonic8).streetaddress -replace \"`r`n\",'`r`n'
[/code:1]

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

Plus d'informations
il y a 13 ans 7 mois #12789 par xyz
J'ai un peu de mal à comprendre ton soucis, de ce que j'ai compris, une fois que tu nous as parlé de génération de commandes, je te propose l'approche suivante :
[code:1]
$Cmd=@'
set-qaduser tonic8 -ObjectAttributes @{streetAddress=\"Desk`t: `r`nOffice : 8989`r`nFloor : 13`r`nBuilding : rue du ahahah`r`nCity : hohoho`r`nCountry : FRANCE\";}
'@

# pas de substitution des caractères de contrôle
1..3|% { $CMD}
# Substitution
des caractères de contrôle
1..3|% { $ExecutionContext.InvokeCommand.ExpandString($CMD)}
[/code:1]
Pas sûr que je sois en phase :pinch:<br><br>Message édité par: Laurent Dardenne, à: 28/09/12 09:36

Tutoriels PowerShell

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

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