【问题标题】:Export-csv: Merge Duplicate RowsExport-csv:合并重复行
【发布时间】:2014-03-28 13:49:25
【问题描述】:

所有,感谢问题Edit a script I found to import a list of adusers, grab their info and export back to another csv 中的解决方案,我能够想出以下脚本。该脚本从 csv 文件中提取用户名,连接到广告,并将用户组导出到不同的 csv。那部分工作得很好。这是我遇到问题的地方。每个用户名/组都放在一个新行中。除了多个组中的用户之外,这是完美的。例子

ColA     ColB
User     Group
bob      admin 
jeff     domain admin  
jeff     test admin 
jeff     power user 

我想做的是想出一种以以下格式导出的方式

ColA     ColB           ColC          ColD   
User     Group          Group         Group
bob      admin
jeff     domian admin   test admin    power user 

这是我的脚本

Begin {
Try { Import-Module ActiveDirectory -ErrorAction Stop }
Catch { Write-Host "Unable to load Active Directory module, is RSAT installed?"; Break }
}

Process {
$UserList=Get-Content C:\Userlist.csv
$users = ForEach ($U in $UserList)
{   $UN = Get-ADUser $U -Properties MemberOf
$Groups = ForEach ($Group in ($UN.MemberOf))
{   (Get-ADGroup $Group).Name
} 
$Groups = $Groups | Sort
ForEach ($Group in $Groups)
{   New-Object PSObject -Property @{
        Name = $UN.Name
        Group = $Group
    } 
} 
} 
$users | export-csv "c:\grouptest.csv" -append
} 

这可以吗?

【问题讨论】:

  • 我编辑了数据,试图让我的目标更清晰。

标签: powershell csv powershell-3.0


【解决方案1】:

除非我误解了你的目标,否则你只需要替换它:

ForEach ($Group in $Groups)
{   New-Object PSObject -Property @{
        Name = $UN.Name
        Group = $Group
    } 
}

用这个:

New-Object PSObject -Property @{
    Name  = $UN.Name
    Group = $Groups
}

【讨论】:

  • 当我这样做时,我只得到第一组,但更重要的是,它也给了我完整的杰出名称。
  • @sjustice $Group 应该是 $Groups。除此之外,代码在我测试时有效。不过,如果您希望属性 Group 成为单个字符串,则可以 -join 数组 $Groups 的元素。
  • 谢谢我回去工作了。我确实让它工作了。以与您相同的方式工作是值得怀疑的。 : ) 我得到的是一个电子表格,每个用户只有一个组,无论他们是否有多个组。但是,我认为您的 -join 命令位于我真正想成为的正确道路上。我会让你知道我在哪里得到的。我不知道你是否看到它,但我编辑了我的原始帖子,试图更好地解释我的目标。
  • 我不认为我能在这一点上得到我想要的。在逻辑上工作,这似乎是我必须做的。比较当前用户和前一个用户。如果用户存在,则检查 col-group1 是否为空,如果不存在则转到下一列,否则粘贴。这一切看似简单的逻辑,但有些事情我还没有弄清楚。 1.如何存储前一个用户进行比较,以及在我进行col-group比较时如何知道要在哪一行。我没有时间完成我的项目,所以我不得不暂时停下来。
猜你喜欢
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
  • 2022-07-27
  • 1970-01-01
  • 2019-04-30
  • 2020-09-23
  • 2018-06-13
  • 2019-10-30
相关资源
最近更新 更多