Csv 为空以从广告用户导出自定义属性
Csv empty to export custom attribute from ad users
从 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",
如果在 foreach
循环中使用 Export-CSV
,则必须记住 -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 用户未正确列出,请检查文件是否包含正确的身份 and/or 服务器。可以在 Get-AdUser
docs.
中找到接受的身份 and/server 名称格式
根据您提供的文件:
The output file :
"#TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser"
"samaccountname","userprincipalname","flags"
"account9","account9@Domain9.local",
我可以看到两件事:
- 您可以使用
-NoTypeInformation
删除第一行
- 如您所见,只有最后一行表示从 AD 获取数据成功,您只需要
-Append
在您的 Export-CSV
.
从 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",
如果在 foreach
循环中使用 Export-CSV
,则必须记住 -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 用户未正确列出,请检查文件是否包含正确的身份 and/or 服务器。可以在 Get-AdUser
docs.
根据您提供的文件:
The output file :
"#TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser" "samaccountname","userprincipalname","flags" "account9","account9@Domain9.local",
我可以看到两件事:
- 您可以使用
-NoTypeInformation
删除第一行 - 如您所见,只有最后一行表示从 AD 获取数据成功,您只需要
-Append
在您的Export-CSV
.