2012-01-10 230 views
2

我是powershell世界的新手,我在PowerShell中進行了一些項目以進行庫存覈對。比較兩個csv文件並發現差異

我不知道如何在這個行動,我嘗試了一些基本的步驟,我能夠出口

用戶/組/組成員。

以下是要求:

  • 現在我已經實現 - 由於Govnah

AD查詢:

Get-QADUser -searchRoot $OuDomain -SizeLimit 0 | 
Select-Object dn, sAMAccountName, @{Name="Groups";Expression={(Get-QADMemberOf $_ | Select-Object -expandProperty Name) -join ";"}} | 
Sort-Object SamAccountName | 
export-csv $FilePath 

我有現在二人的CSV文件喜歡AD_users.csvOracle_users.csv

我想比較這兩個文件,並重定向像

AD用戶的差異甲骨文 不存在Oracle用戶不存在AD

的樣本數據

AD_users.csv

u388848993 
K847447388 
u994888484 

Oracle_users.csv

k095848889 
u388848993 

我可以查詢oracle數據庫,AD查詢也很好,唯一值得關注的是我無法比較輸出。

+1

讓我們來看看你的CSV文件數據。用兩個例子更新你的問題。用示例文本替換敏感信息。 – 2012-01-10 07:27:58

+0

這些是csv文件中的唯一列嗎?不應該在頂部還有列名嗎? – 2012-01-10 07:43:02

+0

正如@ user978511指出的,看起來你缺少頭文件'dn,sAMAcountName,Groups'和相關的數據示例文本。 – 2012-01-10 07:47:05

回答

4

我做了這樣的事情在腳本中我寫道:

[System.Collections.ArrayList]$adlist = Get-Content c:\users\sverker\desktop\ad.csv |Sort-Object 
[System.Collections.ArrayList]$oraclelist = Get-Content c:\users\sverker\desktop\oracle.csv |Sort-Object 
$Matching_numbers = @() 

ForEach ($number in $adlist) 
{ 
    if ($oraclelist.Contains($number)) 
    { 
     $Matching_numbers += $number 
    } 
} 
ForEach ($number in $Matching_numbers) 
{ 
    $adlist.Remove($number) 
    $oraclelist.Remove($number) 
} 

現在$ Matching_numbers現在包含匹配的數字 和$ adlist包含廣告 和$ oraclelist僅數只數從Oracle

然後你可以通過列表和顯示值循環:

Write-Host "Matches:" 
ForEach ($value in $Matching_numbers) 
{ 
    $Message += $value + [Environment]::NewLine 
} 
Write-Host $Message 

Write-Host "AD only:" 
ForEach ($value in $adlist) 
{ 
    $MessageAd += $value + [Environment]::NewLine 
} 
Write-Host $MessageAd 

Write-Host "Oracle only:" 
ForEach ($value in $oraclelist) 
{ 
    $MessageOracle += $value + [Environment]::NewLine 
} 
Write-Host $MessageOracle 

或簡單地寫

$Matching_numbers 

將輸出列表來安慰

可以輸出$消息變量文件或使..

毫無疑問,有做它一個更好的方式,但這個工作對於我來說,對於某種類型的文件。

+0

是的,爲什麼我沒有想到這一點。猜猜我還沒有明白,Powershell有.Net的力量:)我會更新答案 – Sverker84 2012-01-10 08:00:46

+0

它完美的工作,現在我正在努力重新定向輸出。 – Naveen 2012-01-10 08:05:53

+0

顯然現在你提到它:) – Sverker84 2012-01-10 08:18:22

相關問題