Powershell CSV命令使用特定列导出

最大95

我有以下问题:

我有一个与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

你能帮助我吗?

导出必须具有排序列表,并且不包含“”,并且必须按此顺序。

谢谢。最高

根据

您的代码不起作用,主要是因为您要创建一系列最终不使用的变量。

要输出为CSV,您需要收集具有属性而不是单个变量的对象一种非常优雅的方法是使用[PsCustomObject]语法创建那些对象,同时设置属性的顺序将弥补最终输出文件中的顺序。

使用冒号作为分隔符并不常见,当其他应用程序需要阅读和理解这一点时,可能会惹上麻烦,但这取决于您。

另一件事是,您似乎主要使用LDAP属性名,其中PowerShell将大多数属性映射到更友好的属性名(例如“ City”,它映射到LDAP“ l”)。

您的代码已修改:

# Get-ADUSer already returns these properties by default:
# DistinguishedName, Enabled, GivenName, Name, ObjectClass, ObjectGUID, SamAccountName, SID, Surname, UserPrincipalName

# your hardcoded static variables:
$Language = "german"
$Comment  = ""
$Link     = ""
$gender   = ""
$exportto = "C:\Temp\Export01.csv"

# these are the extra properties you want to fetch
$userprops = 'EmailAddress','Title','Company','City','Department','MobilePhone'

# if you want this for all users, remove "-Identity 'm.mustermann'" and use "-Filter *" instead
$result = Get-ADUser -Identity 'm.mustermann' -Properties $userprops | ForEach-Object {
    # output an object to be collected in variable $result
    # the order in which you put them also determines the field order in the CSV
    [PsCustomObject]@{
        MailAddress = $_.EmailAddress
        FullName    = $_.DisplayName
        Title       = $_.Title
        Company     = $_.Company
        Location    = $_.City
        Comment     = $Comment      # static field
        Link        = $Link         # static field
        MobilePhone = $_.MobilePhone
        Language    = $Language     # static field
        Department  = $_.Department
        GivenName   = $_.GivenName
        Surname     = $_.Surname
    }
}

$result | Export-CSV -Path $exportto -NoTypeInformation -Delimiter ":" -Encoding UTF8

关于Export-Csv

Export-Csv 将始终引用所有内容,无论是标题还是数据字段。

简单地尝试删除CSV文件中的所有引号会冒着在字段顺序中未对准的风险,并使csv无法使用。
在PowerShell版本7中,您可以选择使用parameter -UseQuotes AsNeeded,但是对于较旧的版本,可以使用我的功能ConvertTo-CsvNoQuotes安全地执行此操作

由于此代码都是关于获取广告信息的,因此我看不到为什么要在此处构造FullName。只需使用在AD中设置的DisplayName属性,就像上面的代码一样

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Powershell导出Csv

来自分类Dev

更新导出的csv powershell的列值

来自分类Dev

导入Excel,使用PowerShell导出CSV

来自分类Dev

如何使用 Powershell 正确导出到 CSV

来自分类Dev

如何使用超过65536行(和48列)的Powershell将CSV导出到Excel

来自分类Dev

使用 Powershell 更新 CSV 列

来自分类Dev

Powershell-将数组导出到不同列中的CSV

来自分类Dev

如何将powershell代码导出到csv正确列

来自分类Dev

使用Powershell将Excel范围导出到csv

来自分类Dev

PowerShell:使用组对象后导出csv文件

来自分类Dev

如何使用Powershell在CSV中导出文件属性

来自分类Dev

使用Powershell将仅可见行导出为CSV

来自分类Dev

如何使用 powershell 导出 CSV 文件中的 GetFolderContent $ rootFolder 值

来自分类Dev

使用 Powershell 将大输出从 Oracle 导出到 CSV

来自分类Dev

使用 Powershell 从 Avaya 导出数据

来自分类Dev

Powershell命令?

来自分类Dev

Powershell命令?

来自分类Dev

使用PowerShell限制CSV列长度

来自分类Dev

CSV中的Powershell组对象并导出

来自分类Dev

Powershell JSON到CSV的转换和导出

来自分类Dev

Powershell导出CSV,但更改标题名称

来自分类Dev

如何使用本机Powershell命令从html文件提取特定表?

来自分类Dev

使用powershell在现有CSV中添加列CSV

来自分类Dev

使用Powershell运行Psexec命令

来自分类Dev

使用Ansible运行PowerShell命令

来自分类Dev

使用 powershell 运行 diskpart 命令

来自分类Dev

从数组填充的 Powershell CSV 列

来自分类Dev

如何使用Powershell从多个csv文件中提取一个特定的列(没有标题,说第2列)?

来自分类Dev

如何使用Powershell从门户导出AzureVM配置

Related 相关文章

热门标签

归档