【问题标题】:Can't find AD user using the command get-aduser when the user is an object当用户是对象时使用命令 get-aduser 找不到 AD 用户
【发布时间】:2013-08-20 07:29:04
【问题描述】:

我有 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

但是,当我跑步时:

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

效果很好。

如何找到使用 $arr[0].username 的用户? 有什么区别 ?他们都是字符串: “user1”和$arr[0].username ...

谢谢, 为您提供帮助

【问题讨论】:

    标签: powershell window powershell-2.0 powershell-3.0 powershell-1.0


    【解决方案1】:

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

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

    或使用扩展字符串代替脚本块:

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

    【讨论】:

    • 它有效,tnx :) 我想知道只写有什么问题: $arr[0].username 为什么它不起作用?为什么我需要将其更改为扩展字符串:'$($arr[0].username)'?
    • 脚本块“按原样”传递并在服务器上进行评估,使用可扩展字符串确保在客户端上扩展值,然后再移动到服务器上。话虽如此,我不确定它为什么会失败。
    猜你喜欢
    • 2014-11-29
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    相关资源
    最近更新 更多