2010-12-14 4 views
1

ゆっくりとPowershellを学習しています...サードパーティのAD/AMデータベース(LDAP)を照会するスクリプトを作成しています。私が必要とする特定のLDAPプロパティ名には、名前にハイフンが付きます。Powershellのコレクションで文字列インデクサーにアクセスする方法

私はこのことを考えずにC#で行うことができますが、頻繁に変更される単純なスクリプトを行うためにVisual Studioを起動したくありません。

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

答えて

0

ハイフネーションされたプロパティ名の前後に中括弧を配置する必要があります。これは動作するはずです:また、変数を経由してプロパティ名を指定することができます

$item.{some-property} 
1

:result.'some-プロパティは」と同様に動作するはずです

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

$ .. – stej

+0

うん、それはあまりにも動作します。 –

関連する問題