Powershell:脚本不返回所有行

Powershell:脚本不返回所有行

我想将 Department AD 属性添加到从应用程序导出的所有用户。有很多应用程序用户在 AD 中找不到。此脚本将 Department 返回给在 AD 中找到的用户,并跳过在 AD 中找不到的用户。我希望脚本返回所有用户(所有行),对于未找到的用户,返回“未找到 AD 用户”。我遗漏了什么?

$csvfile = 'C:\temp\app_users.csv'
$ADFoundUsers = $null;
$ADFoundUsers = Import-Csv -Path $csvfile | Select-Object * -First 100 |

ForEach-Object {    
    $FullName = $_.'FullName'   
    Get-ADUser -Filter "name -eq '$FullName'" -Properties *}    

    If ($ADFoundUsers -ne $null) {    
        $ADFoundUsers | select Name,Department;
    }    
    Else {    
        Write-Host "No AD users found";    
    }

答案1

假设$ADFoundUsers当您运行此代码时始终包含行,它永远不会相等$null(为空),因此永远不会进入else块。

即使那样,您也只会看到所有用户名和部门或者一个“未找到 AD 用户”实例。您需要if-else将块放在foreach块内,以便为每个用户返回一个“未找到”实例。代码的缩进使其看起来已经是这样的,但实际上 foreach 的结束括号位于行末Get-ADUser...

此外,Select-Object * -First 100除非你正在测试所有用户,否则你不应该有这个,因为它会限制你的结果

相关内容