我刚刚开始学习PowerShell,但是我正在用这个来敲我的头。当我导入CSV用户列表以使用标题SamAccountName在Get-Aduser上获取userprincipalname时,我能够在控制台上看到所有电子邮件:
ForEach ($user in $allUsers)
{
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname
}
但是,当我尝试将它们导出到csv文件时,只有1个用户出来。使用foreach循环时,我总是遇到问题...
ForEach ($user in $allUsers)
{
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname | export-csv $path -NoTypeInformation
}
在制作foreach循环时,我总是遇到这个问题。我只获得或改变1个变量。为什么是这样? x_X请帮忙!
我的CSV文件有一个SamAccountName和samaccount名称的标题。如果没有导出,我会从控制台上的代码中获得良好的数据:
user@test.com user2@test.com 等...
答案 0 :(得分:0)
您在循环的每次迭代中导出,这将覆盖该文件。我没有尝试过,但下面的修改应该有效。
$allUsers | Foreach-Object {
$user = $_
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname
} | export-csv $path -NoTypeInformation
如果要将结果直接传递给foreach(x in y)
export-csv