慢慢学习Powershell ......我正在编写一个脚本来查询第三方AD / AM数据库(ldap)。我想要的特定LDAP属性名称在名称中有一个连字符。
我可以在不考虑它的情况下在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 :(得分:1)
您还可以通过变量指定属性名称:
$prop = 'some-property'
$result.$prop
答案 1 :(得分:0)
您需要在带连字符的属性名称周围放置花括号。这应该有效:
$item.{some-property}