gpt4 book ai didi

powershell - 用户Get-ADUser列出所有属性并导出到.csv

转载 作者:行者123 更新时间:2023-12-04 02:02:49 28 4
gpt4 key购买 nike

我正在尝试浏览我拥有的用户列表,并希望获得一些属性(DisplayName,Office)以显示在表中,然后将表转换为.csv。

我一直在与:

$Users = gc "C:\scripts\Users.txt
foreach ($User in $Users) {
Get-ADUser -Identity $User -Properties DisplayName,Office
}

很好,我可以将其与“select DisplayName,Office”结合使用,但是如果我执行“Out-File -append”,它看起来就很糟糕。我认为我应该使用数组或哈希表来执行此操作,但是我一直在阅读它们,并且并不真正了解如何实现可导出的自动化。感谢您的任何帮助,您可以提供。

最佳答案

查询所有用户并根据文本文件中的列表进行过滤:

$Users = Get-Content 'C:\scripts\Users.txt'
Get-ADUser -Filter '*' -Properties DisplayName,Office |
Where-Object { $Users -contains $_.SamAccountName } |
Select-Object DisplayName, Office |
Export-Csv 'C:\path\to\your.csv' -NoType
Get-ADUser -Filter '*'返回所有AD用户帐户。然后,将这些用户对象流传递给 Where-Object 过滤器,该过滤器将检查每个对象的 SamAccountName属性是否包含在输入文件( $Users)的用户列表中。只有具有匹配帐户名的对象才被转发到管道的下一步。在导出数据之前,可以通过 selecting相关属性来限制输出。

您可以通过将 -contains运算符替换为 hashtable lookups来进一步优化代码:
$Users = @{}
Get-Content 'C:\scripts\Users.txt' | ForEach-Object { $Users[$_] = $true }

Get-ADUser -Filter '*' -Properties DisplayName,Office |
Where-Object { $Users.ContainsKey($_.SamAccountName) } |
Select-Object DisplayName, Office |
Export-Csv 'C:\path\to\your.csv' -NoType

关于powershell - 用户Get-ADUser列出所有属性并导出到.csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27067516/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com