powershell - Powershell CSV有序导出特定列
问题描述
我有以下问题:
我有一个 Get-ADUser 查询,并且有特定的字段可以获取(仅测试查询)
$AllADUsers = get-aduser -Identity m.mustermann -Properties * | select mail, title, l, GivenName, Surname, company, department, mobile
此外,我必须添加一些静态字段如何将语言或注释添加到 CSV,为此我采用了一些变量:
$Language = "german"
$Comment = ""
$Link = ""
$gender = ""
$exportto = "C:\Temp\Export01.csv"
比我想导出带有分隔符“:”的有序 UTF8 CSV 中的所有条目。我做了一个 foreach 但我总是出错或不完整的列表 - 我向你展示我的代码(但我有错误)
Foreach ($ADUser in $AllADUsers) {
$MailAddress = $ADUser.mail
$FullName = "$ADUser.GivenName" + "$ADUser.Surname"
$Title = $AdUser.Title
$Location = $ADUser.l
$Comment = $Comment
$Link = $Link
$MobilePhone = $ADUser.mobile
$Language = $Language
$Divison = $ADUser.Department
$GivenName = $ADUser.GivenName
$Surname = $ADUser.Surname
}
$ADUser | Export-CSV -Path $exportto -NoTypeInformation -Delimiter ":" -Encoding UTF8
你能帮助我吗?
导出必须带有有序列表,并且没有“”,并且仅按此顺序。
谢谢你。最大限度
解决方案
您的代码中存在一些高级问题。
不正确的分配
在您的代码中,您应该将值分配给$AdUser
. 就像是:
foreach ($ADUser in $AllADUsers) {
$ADUser.FullName = "$($ADUser.GivenName) $($ADUser.Surname)"
$ADUser.Comment = $Comment
$ADUser.Link = $Link
}
没有出口
目前您只导出最后一个条目,您应该通过管道$AllADUsers
传输到Export-Csv
:
$AllADUsers| Export-CSV -Path $exportto -NoTypeInformation -Delimiter ":" -Encoding UTF8
不使用 Select-Object 计算属性
通常,您可以将代码缩短为单行代码,例如:
$AllADUsers | Select-Object @{n="Comment";{$Comment}},@{n="FullName";e={"$($ADUser.GivenName) $($ADUser.Surname)"}} ... | Export-CSV ...
推荐阅读
- c - C 和 POSIX 在哪里指定标准头文件必须包含在文件范围内?
- powershell - PowerShell删除lastwrite超过30个项目/文件夹排除多个子文件夹
- javascript - 在 {{}}(大括号)中使用函数调用是一种好习惯吗?
- apache-kafka - Kafka Streams:全局状态存储低级处理器 - 处理方法
- sql-server-2008 - 更新第一个表的哪一列为空,值来自第二个表。两个表具有相同的主键
- gurobi - 如何使用 Gurobi 在 Python 中对图形进行分区?
- python - 使用 Dataframes style.apply 基于比较值突出显示
- oracle - 如何将 2 个字段中的值连接到一个字段中
- vba - 在 VBA 复制图像中查找 Excel 工作表的底部
- c - 在 AVX 向量中加载 64 位整数