Concaténation de chaine et ajout de guillemets à la fin

Le
dav8669
Bonjour,
J'ai la chaine suivante :
$management=[ADSi]"LDAP://*/+$i+""""
Mon problème se situe à la fin je voudrais ajouter des " pour fermer
Merci
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MCI \(ex do ré Mi chel la si do\) [MVP]
Le #18332351
Bonjour !

Pourrais-tu préciser dans quel langage ?
Je débarque, et me demande s'il s'agit de JScript, de VBScript, de
Batch, ou autre... Quoique, le $ me ferait plutôt penser à PHPscript
(la version active-Scripting de PHP). À moins que ce ne soit de
l'Autoit. Ou encore...

@+
--
Michel Claveau
dav8669
Le #18332421
MCI (ex do ré Mi chel la si do) [MVP] a écrit le 08/01/2009 à 11h58 :
Bonjour !

Pourrais-tu préciser dans quel langage ?
Je débarque, et me demande s'il s'agit de JScript, de VBScript, de
Batch, ou autre... Quoique, le $ me ferait plutôt penser à
PHPscript
(la version active-Scripting de PHP). À moins que ce ne soit de
l'Autoit. Ou encore...

@+
--
Michel Claveau


Bonjour michel,
Il s'agit de powershell.
Merci
Gilles LAURENT [MVP]
Le #18332591
"dav8669" news:
| Bonjour,

Bonjour,

| J'ai la chaine suivante :
| $management=[ADSi]"LDAP://*/+$i+""""
| Mon problème se situe à la fin je voudrais ajouter des " pour fermer

$management=[ADSI]"LDAP://server/$($i)" # concaténation

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
dav8669
Le #18332831
Gilles LAURENT [MVP] a écrit le 08/01/2009 à 12h20 :
"dav8669" a écrit dans le
message de
news:
| Bonjour,

Bonjour,

| J'ai la chaine suivante :
| $management=[ADSi]"LDAP://*/+$i+""""
| Mon problème se situe à la fin je voudrais ajouter des "
pour fermer

$management=[ADSI]"LDAP://server/$($i)" # concaténation

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr


Merci
Mais lorsque j'affiche ma variable management :

write-host("$management")
Il m'affiche System.DirectoryServices.DirectoryEntry et pas [ADSI]"LDAP://ip/cn= ,ou= dc= "
Après, je souhaite applique la méthode add à cette variable.
$management.Add($user2)
Erreur lors de l'appel de add, le type ne correpond pas. Pourtant mon user est bon :
$user2=[ADSI]"LDAP://*/cn=*,ou=*,ou=*,dc=*,dc=*"
Merci
Gilles LAURENT [MVP]
Le #18333191
"dav8669" news:
| Merci
| Mais lorsque j'affiche ma variable management :
|
| write-host("$management")
| Il m'affiche System.DirectoryServices.DirectoryEntry et pas
| [ADSI]"LDAP://ip/cn= ,ou= dc= "

Bien oui ! PowerShell manipule des objets.
$management est donc un objet de la classe DirectoryEntry.

| Après, je souhaite applique la méthode add à cette variable.
| $management.Add($user2)

La méthode Add prend en entrée le DN d'un utilisateur
$management.member.add($($user2.distinguishedname))

Je vous invite à décortiquer le fil de discusion précédent ;-)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
dav8669
Le #18333351
Gilles LAURENT [MVP] a écrit le 08/01/2009 à 13h55 :
"dav8669" a écrit dans le
message de
news:
| Merci
| Mais lorsque j'affiche ma variable management :
|
| write-host("$management")
| Il m'affiche System.DirectoryServices.DirectoryEntry et pas
| [ADSI]"LDAP://ip/cn= ,ou= dc= "

Bien oui ! PowerShell manipule des objets.
$management est donc un objet de la classe DirectoryEntry.

| Après, je souhaite applique la méthode add à cette
variable.
| $management.Add($user2)

La méthode Add prend en entrée le DN d'un utilisateur
$management.member.add($($user2.distinguishedname))

Je vous invite à décortiquer le fil de discusion
précédent ;-)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr


Oui, tout est bon, merci encore. J'étais sur deux facons de traiter le problème différentes mais les deux se rejoignent.
dav8669
Le #18333731
dav8669 a écrit le 08/01/2009 à 14h27 :
Gilles LAURENT [MVP] a écrit le 08/01/2009 à 13h55 :
"dav8669" a écrit dans le
message de
news:
| Merci
| Mais lorsque j'affiche ma variable management :
|
| write-host("$management")
| Il m'affiche System.DirectoryServices.DirectoryEntry et pas
| [ADSI]"LDAP://ip/cn= ,ou= dc= "

Bien oui ! PowerShell manipule des objets.
$management est donc un objet de la classe DirectoryEntry.

| Après, je souhaite applique la méthode add à cette
variable.
| $management.Add($user2)

La méthode Add prend en entrée le DN d'un utilisateur
$management.member.add($($user2.distinguishedname))

Je vous invite à décortiquer le fil de discusion
précédent ;-)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr



Oui, tout est bon, merci encore. J'étais sur deux facons de traiter le
problème différentes mais les deux se rejoignent.


Bah finalement, j'ai besoin de résoudre ce problème. En effet, j'ai pris notre exemple de script pour ajouter les groupes et je l'ai inséré dans une boucle.


$ldapQuery = "(&(objectCategory=person)(objectClass=user))"
$de = [ADSI]"LDAP://*/ou=*,OU=*,dc=*,dc=*"
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()



$de1 = [ADSI]"LDAP://1*/ou=*,OU=*,dc=*,dc=*"
$ads1 = new-object system.directoryservices.directorysearcher -argumentlist $de1,$ldapQuery
$complist1 = $ads1.findall()



foreach ($i in $complist) {
$i.Properties.cn
$User = $i.GetDirectoryEntry()
$num=$user.samAccountName
$num=$num -replace('^.', '1')

write-Host "$num"



foreach ($j in $complist1) {
$j.Properties.cn
$numiut=([string]$j.properties.description).split(' ')
$num1=$numiut[3]
write-Host "$num1"
if ($num -eq $num1)
{ write-Host ("les chaines sont égales")
write-host "$i"
$i.memberof | ForEach-Object {
$grp=[ADSI]"LDAP://$($_)" # bind
$grp.member.add($($j.distinguishedname))
$grp.setinfo()
}

}
else
{ write-Host("les chaines ne sont pas égales")}
}

}
Mon $i s'affiche comme System.directoryServices.SearchResult. Idem pour j et méthode add ne s'applique pas sur une expression de valeur nulle.
Merci pour ton aide. (La dernière j'espère je suis au bout du script)
Gilles LAURENT [MVP]
Le #18334601
"dav8669" news:

[...]
| $i.memberof | ForEach-Object {
| Mon $i s'affiche comme System.directoryServices.SearchResult. Idem
| pour j et méthode add ne s'applique pas sur une expression de valeur
| nulle.
| Merci pour ton aide. (La dernière j'espère je suis au bout du script)

$i est en effet un objet de la classe SearchResult. Il faut donc
récupérer l'objet de la classe DirectoryEntry qui représente
l'utilisateur. Pour cela on utilise la méthode GetDirectoryEntry de
l'objet utilisateur :
$i.GetDirectoryEntry.memberof | ForEach-Object {

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Gilles LAURENT [MVP]
Le #18334731
"Gilles LAURENT [MVP]" news:
| "dav8669" | news:
|
| [...]
|| $i.memberof | ForEach-Object {
|| Mon $i s'affiche comme System.directoryServices.SearchResult. Idem
|| pour j et méthode add ne s'applique pas sur une expression de valeur
|| nulle.
|| Merci pour ton aide. (La dernière j'espère je suis au bout du script)
|
| $i est en effet un objet de la classe SearchResult. Il faut donc
| récupérer l'objet de la classe DirectoryEntry qui représente
| l'utilisateur. Pour cela on utilise la méthode GetDirectoryEntry de
| l'objet utilisateur :
| $i.GetDirectoryEntry.memberof | ForEach-Object {

Décidément !!

$i.GetDirectoryEntry().memberof | ForEach-Object {
ou alors
$user.memberof | ForEach-Object { # $User est défini plus haut

Et idem pour la méthode Add :
$grp.member.add($($j.GetDirectoryEntry().distinguishedname))

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Publicité
Poster une réponse
Anonyme