Первый экспортированный файл .csv (первый день отчета 1)
id principalName licenseDisplayName
4b3556f1-df58-6c3c-848b-022fc6a8668d abc@my.com Basic
5b3556f1-df58-6c3c-848b-022fc6a8668d xyz@my.com Stackholder
6b3556f1-ff58-6c3c-848b-022fc6a8668d pqr@my.com Admin
Экспорт в другой день .csv файл (второй день отчета 2) id PrincipalName licenseDisplayName
4b3556f1-df58-6c3c-848b-022fc6a8668d abc@my.com Stackholder
5b3556f1-df58-6c3c-848b-022fc6a8668d xyz@my.com Stackholder
8b3556f1-ff58-6c3c-848b-022fc6a8668d yz@my.com Basic
Сценарий существует ежедневноэкспортировать отчет с помощью PowerShell.В приведенном выше отчете 1 и отчете 2 показаны записи.Итак, я хотел разницу между двумя файлами .csv.
В Report2 первая запись изменяется с Basic
на Stackholder
, а третья запись отсутствует 6b3556f1-ff58-6c3c-848b-022fc6a8668d
и новая запись 8b3556f1-ff58-6c3c-848b-022fc6a8668d
добавил
Я хотел следующий вывод (Разница двух файлов .csv)
id principalName licenseDisplayName Status
4b3556f1-df58-6c3c-848b-022fc6a8668d abc@my.com Stackholder Updated from Basic to Stackholder
6b3556f1-ff58-6c3c-848b-022fc6a8668d pqr@my.com Admin Deleted
8b3556f1-ff58-6c3c-848b-022fc6a8668d yz@my.com Basic New
Мой код:
$reference = Import-Csv -Path C:\Documents\Daily_Report\Daily_Export_jsonold.csv
$lookup = $reference | Group-Object -AsHashTable -AsString -Property Server
$results = Import-Csv -Path C:\Documents\Daily_Report\Daily_Export_jsonnew.csv | foreach {
$server = $_.id
Write-Verbose "Looking for $server"
if ($lookup.value.ContainsKey($server))
{
$oldState = ($lookup[$server]).Access_Level
}
if ($_.State -ne $oldState)
{
[PSCustomObject]@{
id = $server
Username = $_.Username
OldState = $oldState
NewState = $_.Access_Level
}
}
}
Но я получаю следующий вывод
id Username OldState NewState
-- -------- -------- --------
4b3556f1-df58-6c3c-848b-022fc6a8668d abc@my.com Unknown Stakeholder
5b3556f1-df58-6c3c-848b-022fc6a8668d xyz@my.com Unknown Stakeholder
Я хотел, чтобы это было так:
id Username OldState NewState
-- -------- -------- --------
4b3556f1-df58-6c3c-848b-022fc6a8668d abc@my.com Basic Stakeholder
5b3556f1-df58-6c3c-848b-022fc6a8668d xyz@my.com Stakeholder Stakeholder