Powershell 无法导出所有用户,在导入CSV文件以获取ADUser时只显示一个用户
我才刚刚开始学习PowerShell,但我的头撞到了墙上。当我导入CSV用户列表以获取get Aduser上的userprincipalname,标题为SamAccountName时,我可以在控制台上看到所有电子邮件:Powershell 无法导出所有用户,在导入CSV文件以获取ADUser时只显示一个用户,powershell,Powershell,我才刚刚开始学习PowerShell,但我的头撞到了墙上。当我导入CSV用户列表以获取get Aduser上的userprincipalname,标题为SamAccountName时,我可以在控制台上看到所有电子邮件: ForEach ($user in $allUsers) { Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname } 然而,当我试
ForEach ($user in $allUsers)
{
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname
}
然而,当我试图将它们导出到csv文件时,只有一个用户出现。我总是有一个问题,当使用foreach循环这个
ForEach ($user in $allUsers)
{
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname | export-csv $path -NoTypeInformation
}
我在做foreach循环时总是遇到这个问题。我只得到或更改了1个变量。为什么会这样?请帮忙
我的CSV文件有一个SamAccountName和SamAccountName的头。在不导出的情况下,我从控制台上的代码中获得了良好的数据:
ForEach ($user in $allUsers)
{
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname
}
user@test.com
user2@test.com
等等。您在循环的每个迭代中导出,这将覆盖文件。我还没有尝试过,但下面的更改应该可以使用
$allUsers | Foreach-Object {
$user = $_
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname
} | export-csv $path -NoTypeInformation
如果要将结果直接通过管道传输到在循环的每个迭代中导出的csv,则必须使用此语法vs
foreach(x in y)
,这将覆盖文件。我还没有尝试过,但下面的更改应该可以使用
$allUsers | Foreach-Object {
$user = $_
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname
} | export-csv $path -NoTypeInformation
您必须使用此语法vs
foreach(x in y)
如果您想直接将结果管道化到导出csv
使用-Append
参数避免在每次迭代时覆盖csv使用-Append
参数避免在每次迭代时覆盖csv,谢谢,在works中键入代码。你能解释一下为什么使用foreach($alluser中的user){Get ADUser$user.SamAccountName-Properties userprincipalname | select-Property userprincipalname}导出csv$path-NoTypeInformation
不起作用吗?它说我有一条空管道。在输入foreach和你的方式之间似乎有一些根本的区别,但这是什么呢?对我来说似乎是一样的。你打字的方式是否更有效、更全面?您的%{for each是替换的,还是密钥使用$uu管道?主要问题是导出在循环中…因此每次迭代都会覆盖文件。Foreach(x in y)如果在管道中,则不起作用。因此,如果要使用该语法,则必须在集合中累积结果,并在foreach之后通过管道将集合导出。我刚才发布的代码将导出到循环之外,对吗?它在}之外。当我完全执行上一个注释时,它将显示为空管道。您不能使用foreach(x in y)在管道中,您必须使用foreach对象或其别名%Travis,谢谢,在works中键入代码。你能解释一下为什么使用foreach($alluser中的user){Get ADUser$user.SamAccountName-Properties userprincipalname | select-Property userprincipalname}导出csv$path-NoTypeInformation
不起作用吗?它说我有一条空管道。在输入foreach和你的方式之间似乎有一些根本的区别,但这是什么呢?对我来说似乎是一样的。你打字的方式是否更有效、更全面?您的%{for each是替换的,还是密钥使用$uu管道?主要问题是导出在循环中…因此每次迭代都会覆盖文件。Foreach(x in y)如果在管道中,则不起作用。因此,如果要使用该语法,则必须在集合中累积结果,并在foreach之后通过管道将集合导出。我刚才发布的代码将导出到循环之外,对吗?它在}之外。当我完全执行上一个注释时,它将显示为空管道。您不能使用foreach(x in y)在管道中,必须使用foreach对象或其别名%