奇怪地输出文件名

时间:2019-08-12 16:50:30

标签: powershell csv

我编写了一个脚本以提取所有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}

而不是简单地

  

$ ADgroup

有没有办法将其纠正为这样输出?

1 个答案:

答案 0 :(得分:3)

您的最后一个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