当用户是对象时,无法使用命令get-aduser找到AD用户

时间:2013-08-18 09:58:01

标签: powershell window powershell-v2.0 powershell-v3.0 powershell-v1.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'错误   消息:'运营商不支持:'位置:'1 4'。在线:1   焦炭:19   + $ user = get-aduser<<<< -filter {Name -eq $ arr [0] .username}       + CategoryInfo:ParserError:(:) [Get-ADUser],ADFilterParsingException       + FullyQualifiedErrorId:解析查询时出错:'Name -eq $ arr [0] .username'错误消息:'运算符不支持:       'at position:'14'。,Microsoft.ActiveDirectory.Management.Commands.GetADUser

但是,当我跑步时:

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

它工作正常。

如何找到使用$arr[0].username的用户? 有什么不同 ?他们两个字符串: “user1”和$arr[0].username ...

谢谢, 为了你的帮助

1 个答案:

答案 0 :(得分:3)

您可以将用户名分配给变量并在查询中使用它:

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

或使用扩展字符串而不是脚本块:

$user = get-aduser -filter "Name -eq '$($arr[0].username)'"