Powershell导出非活动AD帐户的csv foreach循环

时间:2014-05-07 01:25:40

标签: powershell csv foreach active-directory

您好如何将以下powershell foreach循环导出为CSV | export-csv filename.csv遗憾地不适用于foreach循环。 Manager参数也只输出DN,有没有办法在同一输出而不是DN中显示管理员电子邮件或SamAccountName?

$90Days = (get-date).adddays(-90)
$OUSearch = 

"OU=Contractors,OU=User,OU=x,OU=NZ,OU=Office,DC=add,DC=company,DC=coop,DC=us",
"OU=Contractors,OU=User,OU=xxx,OU=NZ,OU=Office,DC=add,DC=company,DC=coop,DC=us",
"OU=Contractors,OU=User,OU=xxxx,OU=NZ,OU=Office,DC=add,DC=company,DC=coop,DC=us",
"OU=Contractors,OU=User,OU=xxxxx,OU=NZ,OU=Office,DC=add,DC=company,DC=coop,DC=us",
"OU=Contractors,OU=User,OU=xxxxxx,OU=NZ,OU=Office,DC=add,DC=company,DC=coop,DC=us"

Foreach ($ou in $OUSearch){
Get-ADUser -SearchBase $ou -filter {(lastlogondate -le $90days -or passwordlastset -le               $90days) -and (enabled -eq $True)} -Properties lastlogondate, passwordlastset, manager |    Select SamaccountName, Name, Email, Manager, lastlogondate, passwordlastset, Enabled

}

2 个答案:

答案 0 :(得分:0)

我知道有几种方法可以做到这一点。

将foreach循环的结果分配给变量,然后在结尾导出:

$result =
 foreach ($SomeThing in $SomeThings)
  {
    #Create an object
  }

$result | Export-csv c:\somedir\somethings.csv

或者将foreach循环包装在子表达式中,然后直接导出到Export-csv:

$(foreach ($SomeThing in $SomeThings)
  {
    #Create an object
  }) | Export-csv c:\somedir\somethings.csv

您也可以使用脚本块代替子表达式:

&{foreach ($SomeThing in $SomeThings)
  {
    #Create an object
  }} | Export-csv c:\somedir\somethings.csv

不推荐,但经常看到的是创建一个数组并对循环内的数组进行重复添加。馊主意。不要这样做:

$result = @()

foreach ($SomeThing in $SomeThings)
  {
    #Create an object
    $result += $object
  }

 $result | Export-csv c:\somedir\somethings.csv

答案 1 :(得分:0)

最近遇到类似问题的问题,我可能会尝试将过滤器称为字符串,而不是代码块。类似的东西:

ForEach ($ou in $OUSearch) {
Get-ADUser -SearchBase $ou -filter '( lastlogondate -le $90days -or passwordlastset -le $90days ) -and ( enabled -eq $True )' -Properties lastlogondate, passwordlastset, manager | Select SamaccountName, Name, Email, Manager, lastlogondate, passwordlastset, Enabled 
} | export-csv test.csv

至少,这似乎对我有类似的困难。