2

私は、bitlocker アクティブ ディレクトリ オブジェクトからいくつかのプロパティを取得しようとしています。これは、PowerShell を使用してすべての情報を入力することで問題なく実行できます。たとえば、

Get-ADObject -filter 'CN -like "*A3F850A4*"' `
             -Properties CanonicalName,msFVE-RecoveryPassword

プロパティをプルするのに問題なく動作しますが、 -filter パラメータで変数を使用して情報を返す方法がわかりません。これは私が試したコードです。

[string]$passwordId = Read-Host `
                  "What is the first 8 charcters of the recovery password id?"
Get-ADObject -filter {CN -like $passwordId} ` 
             -Properties CanonicalName,msFVE-RecoveryPassword

特にスクリプトでの変数の使用に関する情報は大歓迎です。ありがとう。

4

2 に答える 2

3

AD コマンドレット フィルターは、実際には通常の PowerShell 構文のようには機能しません。

代わりに使用することをお勧めし-LdapFilterます (他のツールへの移植性が高く、ほとんどの場合、PowerShell 風のフィルターとそれほど違いはありません)。

Get-ADObject -LdapFilter "(cn=*$passwordId*)"

-Filter: の使用を主張する場合は、最初に正しい文字列が得られることを確認してください。

$likePattern = "*$passwordId*"
Get-ADObject -Filter {cn -like $likePattern}

または、代わりに文字列表記 (余分な引用符を使用) を使用します。

Get-ADObject -Filter "cn -like '*$passwordId*'"

ただし、これらのフィルターは MS AD モジュールの外では機能しません。LDAP フィルターは、AD を検索するために私が見たすべてのツール (AD 用の ADSISearcher および Quest コマンドレットを含む) で使用できます。

于 2013-08-17T06:50:07.873 に答える