Powershell Import-CSV和Foreach-Object,不包括CSV标题

时间:2014-12-04 04:33:53

标签: powershell

我正在尝试获取一个域的SAMAccountNames,并将它们与来自另一个域的等号进行比较。

为了获得dc1的所有用户,我使用:

Get-ADUser -Filter * -SearchBase $SearchBase | Select-Object SamAccountName |
    Export-Csv -path $exports -encoding "unicode" -notype

然后我再次导入csv并尝试比较它们的任何差异

$readthat = Import-CSV $exports -Header SamAccountName | ForEach-Object {
  $user1 = Get-ADUser -Identity $_.SamAccountName -Properties $attributes
  $user2 = Get-ADUser -Identity $_.SamAccountName -Properties $attributes -Server $dc2

  $modified = @{}
  $attributes | Where-Object { $user1.$_ -ne $user2.$_ } | ForEach-Object {
    $modified[$_] = $user2.$_
  }
}

所有这一切都很有效,除了它还试图找到SamAccountName当然会产生错误,因为SamAccountName = SamAccountName没有退出。

有关如何避免这种情况的任何提示,或者你们有更优雅的解决方案吗?

<。> .csv看起来像这样:

"SamAccountName"
"foo"
"bar"

1 个答案:

答案 0 :(得分:3)

不要使用-Header SamAccountName上的import-csv选项,应该会有很大的帮助。 -Header选项适用于您导入的CSV文件没有标题的情况。 Export-CSV cmdlet会为您添加标题,因此您不必这样做。