2010-12-14 61 views
1

Lentement apprendre Powershell ... Je travaille sur un script pour interroger une base de données AD/AM tiers (ldap). Le nom de propriété LDAP spécifique que je veux a un trait d'union dans le nom.comment accéder à l'indexeur string sur une collection dans Powershell

Je peux le faire en C# sans y penser, mais je ne veux pas lancer Visual Studio juste pour faire quelques trucs de script simples qui changent fréquemment.

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher 
..... 
$results = $objSearcher.FindAll() 
foreach($result in $results) { 
    $item = $result.Properties 
    $item.some-property   # this fails because of '-' 
    $result['some-property'] # 'Unable to index into an object of type System.DirectoryServices.SearchResult.' 
} 

Répondre

0

Vous devez placer des accolades autour du nom de la propriété. Cela devrait fonctionner:

$item.{some-property} 
1

Vous pouvez également spécifier le nom de la propriété par une variable:

$prop = 'some-property' 
$result.$prop 
+1

$ result.'some-propriété » devrait fonctionner aussi bien .. – stej

+0

Eh oui, ça marche aussi. –