Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

9 réponses
Avatar
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

9 réponses

Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
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
Avatar
dav8669
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
Avatar
Gilles LAURENT [MVP]
"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
Avatar
dav8669
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
Avatar
Gilles LAURENT [MVP]
"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
Avatar
dav8669
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.
Avatar
dav8669
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)
Avatar
Gilles LAURENT [MVP]
"dav8669" a écrit dans le message de
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
Avatar
Gilles LAURENT [MVP]
"Gilles LAURENT [MVP]" a écrit dans le message de
news:
| "dav8669" a écrit dans le message de
| 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