嗨,我正在尝试将此数据导出到 csv 文件,但无法弄清楚,有人知道吗?非常感谢帮助

Hi I am trying to export this data to a csv file but cant figure it out does anyone know? help is greatly apprciated

提问人:Aaron Kenny 提问时间:11/16/2023 最后编辑:DavidAaron Kenny 更新时间:11/16/2023 访问量:37

问:

$infile = "C:\Temp\check.txt"  
$users = Get-Content $infile  
foreach ($user in $users){ Get-ADUser -Filter {name -like $user -or samaccountname -like $user} | Select Name, SamAccountName,Enabled } | export-csv "C:\temp\Git.csv" 
Powershell CSV 格式

评论

0赞 David 11/16/2023
您的代码在哪些方面未按预期工作?请详细说明您观察到的具体问题以及您所做的调试。要了解有关此社区的更多信息以及我们如何为您提供帮助,请从导览开始并阅读如何提问及其链接资源。
0赞 Aaron Kenny 11/16/2023
嗨,大卫,谢谢你的回复。该代码应导出在 Active Directory 中禁用或启用的用户列表。从表面上看,代码确实有效,但不幸的是,我无法从 txt 文件获取要导出到 excel 文件的所有数据。当我在不尝试导出的情况下运行它时,它可以正常工作,我可以清楚地看到数据。我只希望它也导出到 .csv 对不起,如果我不清楚

答:

2赞 Mathias R. Jessen 11/16/2023 #1

不能将流控制语句(如循环)用作管道表达式中的命令元素。foreach(...){...}

惯用的解决方法是使用 cmdlet:ForEach-Object

$infile = "C:\Temp\check.txt"  
$users = Get-Content $infile  
$users |ForEach-Object { 
    $user = $_
    Get-ADUser -Filter {name -like $user -or samaccountname -like $user} | Select Name, SamAccountName,Enabled 
} | Export-csv "C:\temp\Git.csv" 

或者,可以将整个语句包装在脚本块中,然后将其用作管道中的第一个命令:

$infile = "C:\Temp\check.txt"  
$users = Get-Content $infile
& {
    foreach($user in $users) { 
        Get-ADUser -Filter {name -like $user -or samaccountname -like $user} | Select Name, SamAccountName,Enabled 
    } 
} | Export-csv "C:\temp\Git.csv"

评论

0赞 Aaron Kenny 11/16/2023
非常感谢 yo0ur 的帮助,效果很好