PowerShell-比较两个CSV,并使用SideIndicator将差异导出到单独的文件中

PowerShell-比较两个CSV,并使用SideIndicator将差异导出到单独的文件中,powershell,csv,Powershell,Csv,我需要一些帮助来创建一个PowerShell脚本,该脚本将比较两个csv文件,并确定每个文件特定的差异。这将用于Active Directory用户管理,并将根据用户所在的csv创建或禁用帐户 我需要使用Student ID列标题进行比较,因为这是帐户上共享的唯一公共和唯一属性 StudentRoster.csv(参考文件)-我需要查看此文件中不在ActiveDirectory.csv中的学生列表/导出。我将使用此列表在AD中创建这些用户 ActiveDirectory.csv-我需要查看此文件

我需要一些帮助来创建一个PowerShell脚本,该脚本将比较两个csv文件,并确定每个文件特定的差异。这将用于Active Directory用户管理,并将根据用户所在的csv创建或禁用帐户

我需要使用Student ID列标题进行比较,因为这是帐户上共享的唯一公共和唯一属性

StudentRoster.csv(参考文件)-我需要查看此文件中不在ActiveDirectory.csv中的学生列表/导出。我将使用此列表在AD中创建这些用户

ActiveDirectory.csv-我需要查看此文件中不在studentrolister.csv中的学生列表/导出。此列表中的用户将在AD中被禁用

标题/列: 学号、姓、名、年级

我正在使用下面的代码,但我不确定如何告诉它使用SideIndicator将用户标记为create/disable,以及如何导出到create或disable csv

Compare Object-ReferenceObject$(gc C:\users\Me\desktop\Test\studentrolister.csv)-DifferenceObject$(gc C:\users\Me\desktop\Test\ActiveDirectory.csv)| Export csv C:\users\Me\desktop\Test\Export.csv

$ReferenceObject=Import csv C:\users\Me\desktop\Test\studentrolister.csv
$referenceObject = Import-Csv C:\users\Me\desktop\Test\StudentRoster.csv
$differenceObject = Import-Csv C:\users\Me\desktop\Test\ActiveDirectory.csv
$compareParams = @{
    ReferenceObject = $referenceObject
    DifferenceObject = $differenceObject
    Property = 'Student ID'
    PassThru = $true
}
$comparison = Compare-Object @compareParams | Where-Object {$psitem.SideIndicator -eq '<='} 
$comparison | Export-Csv C:\users\ardavis\desktop\export.csv -NoTypeInformation
$differenceObject=导入Csv C:\users\Me\desktop\Test\ActiveDirectory.Csv $compareParams=@{ ReferenceObject=$ReferenceObject DifferenceObject=$DifferenceObject 属性='Student ID' PassThru=$true }
$comparison=Compare Object@compareParams | Where Object{$psitem.SideIndicator-eq'您是否只关心每个文件中是否存在学生ID?如果ID同时存在于这两个文件中,但其他列存在差异,该怎么办?嗨,Ryan,学生ID在这两个文件中唯一存在但列数据不同的时间是,如果学生的姓名发生了更改。这种情况会发生,但并不经常发生。如果确实发生,我们将手动修正,因为新的电子邮件地址是在google中生成的,他们的文档必须迁移到该地址。在这种情况下,我仍然希望将StudentRoster用户标记为在AD中创建。学生ID是识别的主要焦点,但我仍然需要同一行中的姓、名、年级。请注意,比较object不关心每个文件中行的顺序,除非syncwindow为0。这一点很好!是的,@John您可以在
比较对象之后添加
-syncwindow 0
标志