从1 csv中删除另一个csv中的行

Con*_*eis 2 powershell

我在主机/计算机的列表list.csvhost name列.其中一些还没有登录,所以我想删除包含过期计算机记录的所有行.

我可以使用下面的代码获取域中所有未在90天内登录的计算机(ish),但是我想获取计算机列表并将它们进行比较list.csv,从而删除匹配的计算机list.csv.

我已经尝试了一段时间与其他文章Import-CSV等,但不能破解它.

import-module activedirectory  
$domain = "contoso.local"  
$DaysInactive = 90  
$time = (Get-Date).Adddays(-($DaysInactive)) 

# Get all AD computers with lastLogonTimestamp less than our time 
Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} -Properties     LastLogonTimeStamp | 

# Output hostname and lastLogonTimestamp into CSV 
select-object Name | export-csv "C:\users\bicard\Desktop\allComputerslistFromDomainLookup.csv" -notypeinformation
Run Code Online (Sandbox Code Playgroud)

小智 5

刚发布我发现这是@ JPBlanc的提示.

$DaysInactive = 90  
$OutDate = (Get-Date).Adddays(-($DaysInactive)) 

# Get all AD computers with lastLogonTimestamp less than our time 
$OutDated = Get-ADComputer -Filter {LastLogonTimeStamp -lt $OutDate} -Properties LastLogonTimeStamp | 
  select-object -ExpandProperty Name 

Import-Csv List.csv | 
  Where { $OutDated -notcontains $($_.'host name'} |
    Export-csv NewList.csv -notypeinformation
Run Code Online (Sandbox Code Playgroud)