2010-12-14 20 views
1

Langsam lernen Powershell ... Ich arbeite an einem Skript, um eine AD/AM-Datenbank von Drittanbietern (Idap) abzufragen. Der spezifische LDAP-Eigenschaftsname, den ich möchte, hat einen Bindestrich in dem Name.wie auf String-Indexer für eine Sammlung in Powershell zugreifen

Ich kann dies in C# tun, ohne darüber nachzudenken, aber ich möchte Visual Studio nicht nur starten, um einige einfache Skripting-Sachen zu machen, die sich häufig ändern.

$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.' 
} 

Antwort

0

Sie müssen geschweifte Klammern um den Namen der hyphenierten Eigenschaft platzieren. Dies sollte funktionieren:

$item.{some-property} 
1

Sie auch den Namen der Eigenschaft über eine Variable angeben:

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

$ result.'some-Eigenschaft‘sollte auch funktionieren .. – stej

+0

Yep, das auch funktioniert. –

Verwandte Themen