powershell - Powershell 导出到 csv(保持数据的原始顺序)
问题描述
我有以下脚本可以根据用户的姓名导出用户的 samaccountname。它正在工作/做它应该做的事情。
$users = Get-Content C:\Users\metho\Desktop\users1.txt
$output = foreach ($user in $users){
Get-ADUser -Filter "Name -eq '$user'" | Select-Object name, samaccountname
}
$output | export-csv C:\Users\metho\Desktop\Users_Export_Test.csv -NoTypeInformation
原始 csv 包含 527 个用户...输出 csv 有 480 个用户。基本上,未找到的用户在输出 csv 中被跳过(但我希望输出也以相同的顺序列出丢失的用户),这给我带来了一个问题。我想要一个输出 CSV,其中还列出了不在系统上的用户,因此我可以进行手动挖掘,目前我必须通过将原始 csv 与导出的 csv 进行比较来自己找到丢失的用户,即时间太长了。
有没有一种方法可以使用找到的用户名导出 csv 并列出在系统上找到的用户。我认为它必须与 export-csv 开关有关。我正在尽我所能找到答案,也许有人知道答案??任何帮助都将受到高度评价。
-方法
解决方案
你可以尝试这样的事情:
$users = Get-Content C:\Users\metho\Desktop\users1.txt
$output = @()
foreach ($user in $users) {
$adUser = Get-ADUser -Filter "Name -eq '$user'" | Select-Object Name, SamAccountName
if ($adUser) {
$output += $adUser
}
else {
$output += [PSCustomObject]@{
Name = $user
SamAccountName = 'Not found in AD'
}
}
}
$output | Export-Csv C:\Users\metho\Desktop\Users_Export_Test.csv -NoTypeInformation
如果在 AD 中找不到用户,则该用户的输出将是
"Name","SamAccountName"
"Username as in the txt file","Not found in AD"
推荐阅读
- c++ - 关于链接器和多类声明的 C++ 问题
- python - python中的子进程不产生输出
- python - 无论选项卡是否打开,我如何才能运行此代码?
- android - onCallAdded的回调如何获取当前设备的电话号码和SIM卡槽?
- git - Git 合并请求和分支策略
- python - PyMySQL:- OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection denied)")
- macos - macOS nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
- python-2.7 - 附加列表但得到“AttributeError:'NoneType'对象没有属性'append'”Python 2.7
- qa - 使用 Android 的日志进行猴子测试
- performance - 这两个将ll转换为可执行文件的命令脚本有什么不同?