首页 文章

Powershell循环只在最后一个循环中执行命令为什么?

提问于
浏览
0

我正在编写一个简单的PowerShell脚本,它从文本文件中读取用户名列表,对于每个名称运行命令“Get-ADUser -Filter {Name -eq $ name} | select name”但是代码只完成了搜索列表中的姓氏,而不是列表中的每个人,任何人都可以解释为什么会发生这种情况?

foreach($name in $(gc .\tmp\checkname.txt))
{
   Write-Host "checking $name now"
   Get-ADUser -Filter {Name -eq $name} | select name

}

输出如下

checking Donna Anthes   now
checking Jessica Kelly  now
checking Malcolm Page   now
checking Rommie Redlich now

name          
----          
Rommie Redlich

我希望输出如下

checking Donna Anthes   now
name          
----          
Donna Anthes


checking Jessica Kelly  now
name          
---- 
Jessica Kelly

checking Malcolm Page   now
name          
---- 
Malcolm Page

checking Rommie Redlich now

name          
----          
Rommie Redlich

1 回答

  • 0

    只是想让任何读过这个问题的人知道Mjolinor的评论就是答案 . 使用每个名称末尾的空格get-aduser doenst返回任何结果 . 我更新了我的代码如下

    $a = $(($name).trim())
        Write-Host "checking $a now"
    
        Get-ADUser -Filter { Name -eq $a } | select name | ft -HideTableHeaders
    

    获得了预期的产量

    checking Donna Anthes now
    
    Donna Anthes
    Donna Anthes
    
    
    checking Jessica Kelly now
    
    Jessica Kelly
    
    
    checking Malcolm Page now
    
    Malcolm Page
    
    
    checking Rommie Redlich now
    
    Rommie Redlich
    Rommie Redlich
    

相关问题