从csv文件中,在Powershell控制台中查看属性值没有问题,但是当我要在csv文件中导出时,该文件为空,也许有人可以帮帮我吗?
$adusers = Import-Csv "c:\temp\adusers.csv" -Delimiter ";"
foreach ($item in $adusers) {
# Map variables from CSV
$adusers = $item.'ADUsers'
$Servers = $item.'Domain'
Get-ADUser -identity $adusers -Properties flags -Server $Servers | Select-
Object -Property samaccountname, userprincipalname, flags | export-csv
c:\temp\fdfdrff.csv -Encoding Unicode
}
文件adusers.csv:
ADUsers;Domain
account1;Domain1
account2;Domain2
account3;Domain3
account4;Domain4
account5;Domain5
account6;Domain6
account7;Domain7
account8;Domain8
account9;Domain9
输出文件:
"#TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser"
"samaccountname","userprincipalname","flags"
"account9","account9@Domain9.local",
答案 0 :(得分:0)
如果在Export-CSV
循环内使用foreach
,则必须记住-Append
参数。否则,每次替换文件都会发生在您的示例中。
此外,您可以删除分配变量并直接使用$item
属性:
Get-ADUser -identity $item.ADUsers -Properties flags -Server $item.Domain
更详细的故障排除:
$adusers = Import-Csv "c:\temp\adusers.csv" -Delimiter ";"
$adusers
如果$adusers
无法正确显示对象,请检查文件格式。
仅在foreach
内部运行
Get-ADUser -identity $item.ADUsers -Properties flags -Server $item.Domain
如果未正确列出AD用户,请检查文件是否包含正确的标识和/或服务器。可以在Get-AdUser
docs中找到可接受的身份和/或服务器名称格式。
基于您提供的文件:
输出文件:
"#TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser" "samaccountname","userprincipalname","flags" "account9","account9@Domain9.local",
我可以看到两件事:
-NoTypeInformation
摆脱第一行-Append
中只需要Export-CSV
。