我才刚刚开始学习PowerShell,但我用这个撞墙了。当我导入 CSV 用户列表以在 Get-Aduser 上获取带有标题 SamAccountName 的用户主体名称时,我能够在控制台上看到所有电子邮件:
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.comuser2@test.com等。。。
您在循环的每次迭代中导出,这将覆盖文件。 我还没有尝试过,但下面的更改应该可以工作。
$allUsers | Foreach-Object {
$user = $_
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname
} | export-csv $path -NoTypeInformation
如果要将结果直接管道传输到export-csv
,则必须使用此语法与foreach(x in y)