0

私はCSVファイルを持っています:

phone         username
--------      ---------
1               user1
2               user2

最初に実行します:

$arr = import-csv "c:\names.csv"

たとえば、これは実行時の出力です。

 $arr[0].username 
user1

今、私の目標は、AD でこのユーザーを見つけることです。実行すると、次のようになります。

$user = get-aduser -filter {Name -eq $arr[0].username}

受け取りました:

Get-ADUser : クエリの解析エラー: 'Name -eq $arr[0].username' エラー メッセージ: 'Operator Not supported: ' at position: '1 4'. 行:1 文字:19 + $user = get-aduser <<<< -filter {Name -eq $arr[0].username} + CategoryInfo : ParserError: (:) [Get-ADUser], ADFilterParsingException + FullyQualifiedErrorId :クエリの解析エラー: 'Name -eq $arr[0].username' エラー メッセージ: 'Operator Not supported: ' at position: '14'.,Microsoft.ActiveDirectory.Management.Commands.GetADUser

しかし、私が実行すると:

$user = get-aduser -filter {Name -eq "user1"}

それは正常に動作します。

を使用しているユーザーを見つけるにはどうすればよい$arr[0].usernameですか? 違いはなんですか ?両方とも文字列: "user1" と$arr[0].username...

ご協力いただきありがとうございます

4

1 に答える 1

3

ユーザー名を変数に割り当てて、クエリで使用できます。

$name = $arr[0].username
$user = get-aduser -filter {Name -eq $name}

または、スクリプト ブロックの代わりに展開された文字列を使用します。

$user = get-aduser -filter "Name -eq '$($arr[0].username)'"
于 2013-08-18T10:15:11.013 に答える