【问题标题】:Foreach in Get-ADUser获取 ADUser 中的 Foreach
【发布时间】:2020-06-18 12:51:17
【问题描述】:

在这一点上,我已经尝试了很多不同的组合,但我都快干了。我有一个 CSV 文件,其中包含 117321 格式的人的用户名 (Users),它指的是他们的登录名。我正在尝试获取所有这些用户的主目录路径并将它们导出到 CSV。这是我到目前为止所拥有的,但它似乎不起作用。我什至尝试过过滤器。

$InputFile = 'C:\Users.csv'
$Users = Import-CSV $InputFile
$OutputFile = 'C:\Directory Results.csv'

$HomeDirOutput = ForEach ($User in $Users) {
Get-ADUser -LDAPFilter "(sAMAccountName=$user)" -Properties homedirectory
}

$HomeDirOutput | Export-Csv $OutputFile -NoTypeInformation

我得到的只是一张空白的电子表格。

【问题讨论】:

    标签: powershell active-directory ldap


    【解决方案1】:

    sAMAccountName 是传递给 Get-ADUser 的 -Identity 参数的有效值。假设 CSV 包含一列“AccountName”,您应该可以这样做

    Import-CSV -Path $InputFile | ForEach-Object { Get-ADUser -Identity $_.AccountName -Property sAMAccountName,HomeDirectory } | SelectObject -Property sAMAccountName,HomeDirectory | Export-CSV -NoTypeInformation -Path $OutputFile -Append
    

    (在确保输出文件不存在之后)。

    【讨论】:

    • 列名是“用户”,如果我可以做 $_.User,我不需要 sAMAccountName
    • 然后将-Identity $_.AccountName 更改为-Identity $_.User。如果这不是很明显,请花点时间研究一下 PowerShell;我推荐 Manning Publications 在一个月的午餐中学习 Windows PowerShell
    • 谢谢!我让它工作。另外,有没有办法只显示他们是某个“成员”?
    • 您需要详细阅读Get-ADUser cmdlet,特别注意-Filter 参数。
    猜你喜欢
    • 2022-01-16
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    相关资源
    最近更新 更多