我們有一個很大的審計,我們希望確保所有被稱爲員工的AD計算機帳戶已被停用。我有一個.csv,它具有我們使用的唯一標識符 - 我們的模式在AD計算機名稱屬性中包含該ID。我正在將導入的csv對象及其屬性正確地佈置到過濾器上,遇到了很大的麻煩。我認爲。我不完全確定。這就像我一直在嘗試的東西。來自import-csv頭痛的Powershell管道對象
Import-Csv termname.csv | ForEach-Object
{ Get-ADComputer -Filter { Name -Contains "$($_.id)" } } |
Export-Csv termcomp.csv -NoTypeInformation
這個「劇本」一共有沒有內容的拉昇,雖然我知道,當我測試
Get-ADComputer -Filter { Name -Contains $id }
其中$id
是唯一的ID,我得到AD計算機對象命中。同樣,測試此塊
Import-Csv termname.csv | ForEach-Object { Get-ADComputer { Name -Contains $_.id }
PowerShell的錯誤是:
..."Property 'id' not found in object of type: 'System.Management.Automation.PSCustomObject'.
我認爲我misapprehending什麼恰恰是一個「對象」,在這種情況下。整個導入的數組是一個對象,其屬性爲.id?或者是每行都有自己的對象,具有.id屬性?無論如何,爲什麼PowerShell會對管道對象產生如此強烈的反對意見?畢竟這是其主要工作?
是否有一個完全更好的方法去完成整個過程?我以某種方式去顛覆整個混亂?
UPDATE
作爲csv文件的請求,樣本內容。建議使用通配符代替,我已將通配符放入.csv本身,這也可能不是最優雅的解決方案。但只要它有效!這裏的樣品,從記事本++
id
*rstarr56*
*jlennon58*
*pmcartney74*
*gharrison68*
你能不能請分享CSV文件的內容。至少有一些值,以便我們可以看到內容是如何在PowerShell中實現的。 ? –
我看到的大問題是包含的使用,這是用於測試的項目在集合中。簡單的答案是使用like和*通配符。 – BenH