【问题标题】:Output filename weirdly奇怪地输出文件名
【发布时间】:2019-08-12 16:50:30
【问题描述】:

我编写了一个脚本来提取所有 AD 组名称的列表,然后将其输入到下一部分,该部分会根据组名称导出一些 CSV 文件:

import-module active directory

New-Item -Path "c:\" -Name "ADlist" -ItemType "directory"

get-adgroup -filter * | sort name | select Name | export-csv -Path c:\ADlist\adlist.csv


$ADlist = Import-Csv -Path "c:\ADlist\adlist.csv"       
foreach ($ADgroup in $ADlist)
    { 

       $export = get-ADGroupMember -identity $ADgroup.name | select name |Export-Csv "$ADgroup.csv" -notypeinformation

    }

这可行,但是 csv 名称输出奇怪,看起来类似于:

@{Name=$ADgroup}

而不是简单

$广告组

有没有办法纠正这个输出?

【问题讨论】:

  • 您的最后一个 Export-Csv "$ADgroup.csv" 正在对您的 $ADGroup 对象进行字符串化。你应该把它改成Export-Csv "$($ADgroup.Name).csv"
  • @AdminOfThings 谢谢你,这正是问题所在,你应该把它作为我的答案提交给我,马克接受了答案,再次感谢
  • 我已经提交了答案。谢谢

标签: powershell csv


【解决方案1】:

您的最后一个 Export-Csv "$ADgroup.csv" 正在对您的 $ADGroup 对象进行字符串化。由于该对象有一个名为Name 的属性和一个关联的值,因此您会看到该格式的结果。您应该将其更改为以下内容:

$export = Get-ADGroupMember -Identity $ADgroup.name |
    Select-Object Name |
        Export-Csv "$($ADgroup.Name).csv" -NoTypeInformation

您可以通过将自定义对象括在引号中或使用 Write-Host 来查看此行为。

"$ADgroup"
Write-Host $ADgroup

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2018-06-16
    • 2014-04-18
    • 2018-02-28
    • 2020-07-20
    • 2021-02-27
    • 1970-01-01
    相关资源
    最近更新 更多