Question
Conversion de format String en Array
- Seals
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 39
- Remerciements reçus 0
il y a 16 ans 3 semaines #6252
par Seals
Conversion de format String en Array a été créé par Seals
Hello,
J'ai un petit souci de conversion. Je charge un groupe AD. J'en extrais les membres $Group.member .
J'en obtient une liste (distinguishedName) que j'aimerai convertir en Array pour pouvoir bénéficier des méthodes SystemArray notamment equals() / existe() et getEnumerator().
Ceci pour comparer deux groupes AD et d’en sortir les doublons. Le but est ici de le faire en pur .Net et pas à la sauce batch.
[code:1]
$tableau = New-Object System.Collections.ArrayList
$tableau = $Group.member
[/code:1]
Ceci ne fonctionne pas car $tableau est converti en System.String. Mais le plus bizarre est que le code ci-dessous fonctionne ??
[code:1]
for ($i=1; $i -lt $tableau.length; $i++) {
$tableau[$i] | Out-Host
}
[/code:1]
Qui pourrait m’aider, ou orienter mes recherches ?
J'ai un petit souci de conversion. Je charge un groupe AD. J'en extrais les membres $Group.member .
J'en obtient une liste (distinguishedName) que j'aimerai convertir en Array pour pouvoir bénéficier des méthodes SystemArray notamment equals() / existe() et getEnumerator().
Ceci pour comparer deux groupes AD et d’en sortir les doublons. Le but est ici de le faire en pur .Net et pas à la sauce batch.
[code:1]
$tableau = New-Object System.Collections.ArrayList
$tableau = $Group.member
[/code:1]
Ceci ne fonctionne pas car $tableau est converti en System.String. Mais le plus bizarre est que le code ci-dessous fonctionne ??
[code:1]
for ($i=1; $i -lt $tableau.length; $i++) {
$tableau[$i] | Out-Host
}
[/code:1]
Qui pourrait m’aider, ou orienter mes recherches ?
Connexion ou Créer un compte pour participer à la conversation.
- Vara
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 30
- Remerciements reçus 0
il y a 16 ans 3 semaines #6254
par Vara
Réponse de Vara sur le sujet Re:Conversion de format String en Array
Bonjour,
Il faut que tu force le type de variable en tableau.
Si tu as qu'un membre dans ton groupe le type de variable est un string.
[code:1]
[array]$tableau = $Group.member
[/code:1]
Dans ce cas même s'il n'y a qu'un élément la variable est un tableau.
Il faut que tu force le type de variable en tableau.
Si tu as qu'un membre dans ton groupe le type de variable est un string.
[code:1]
[array]$tableau = $Group.member
[/code:1]
Dans ce cas même s'il n'y a qu'un élément la variable est un tableau.
Connexion ou Créer un compte pour participer à la conversation.
- Seals
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 39
- Remerciements reçus 0
il y a 16 ans 3 semaines #6255
par Seals
Réponse de Seals sur le sujet Re:Conversion de format String en Array
Bhein non, malgré le faite de le forcer, il est converti :
[code:1]
$tableau |Get-Member
TypeName: System.String
Name MemberType Definition
----
Clone Method System.Object Clone()
....
[/code:1]
Merci.
[code:1]
$tableau |Get-Member
TypeName: System.String
Name MemberType Definition
----
Clone Method System.Object Clone()
....
[/code:1]
Merci.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 3 semaines #6258
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Conversion de format String en Array
Seals écrit:
Quelle est le type de ta collection ?
Sinon le type d'un tableau de string est [string[]].<br><br>Message édité par: Laurent Dardenne, à: 25/02/10 20:32
L'affichage appel ToString() sur les éléments de la collection ciblée, identique à l'appel du cmdlet Out-String.Mais le plus bizarre est que le code ci-dessous fonctionne
Quelle est le type de ta collection ?
Sinon le type d'un tableau de string est [string[]].<br><br>Message édité par: Laurent Dardenne, à: 25/02/10 20:32
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Seals
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 39
- Remerciements reçus 0
il y a 16 ans 3 semaines #6259
par Seals
Réponse de Seals sur le sujet Re:Conversion de format String en Array
[code:1]$ADSIGroup1 = [ADSI]\"LDAP://CN=[/code:1]
Je recupère un TypeName:
System.DirectoryServices.DirectoryEntry
et quand j'appelle la Property member je récupère un TypeName: System.String
Sinon, voici mon code qui ne fonctionne pas en System.String
[code:1]
$group1 = $ADSIGroup1.member
$group2 = $ADSIGroup2.member
for ($i=0; $i -lt $group1.count; $i++) {
for ($j=0; $j -lt $group2.count; $j++) {
if ( $group1[$i] -match $group2[$j] ){
$group2[$j].remove( 0, $group2[$j].length )
}
}
}[/code:1]
Du coup je cherche a mettre dans une Array pour avoir les methodes qui me permette de le faire plus simplement(?).
Merci.
Je recupère un TypeName:
System.DirectoryServices.DirectoryEntry
et quand j'appelle la Property member je récupère un TypeName: System.String
Sinon, voici mon code qui ne fonctionne pas en System.String
[code:1]
$group1 = $ADSIGroup1.member
$group2 = $ADSIGroup2.member
for ($i=0; $i -lt $group1.count; $i++) {
for ($j=0; $j -lt $group2.count; $j++) {
if ( $group1[$i] -match $group2[$j] ){
$group2[$j].remove( 0, $group2[$j].length )
}
}
}[/code:1]
Du coup je cherche a mettre dans une Array pour avoir les methodes qui me permette de le faire plus simplement(?).
Merci.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 3 semaines #6262
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Conversion de format String en Array
N'ayant pas d'AD sous la main, cela m'est difficile de t'aider, bien qu'il me semble que ce pb soit simple à résoudre.
D'après ce code ,peux-tu utiliser un énumérateur sur l'objet récupéré ?
A noter que la classe System.DirectoryServices.DirectoryEntry ne posséde pas de membre nommé Member
D'après ce code ,peux-tu utiliser un énumérateur sur l'objet récupéré ?
A noter que la classe System.DirectoryServices.DirectoryEntry ne posséde pas de membre nommé Member
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.055 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Conversion de format String en Array