在PowerShell中过滤CSV文件中的内容

我使用以下PowerShell脚本来确定最终用户在其计算机上安装的应用程序(除了映像安装的默认应用程序之外)。

目前,该脚本收集旧计算机上的应用程序列表,并粘贴其下的默认应用程序列表(从DefaultApps.csv)。 然后我在Excel中打开它,添加条件格式来查找重复的条目,并隐藏/删除这些行。 然后,我留下了一个我需要在新用户的计算机上安装的列表,其中不包含图像安装的任何东西。

我想要做的是修改脚本,以便PowerShell将筛选出find的任何重复条目。 我在网上发现了几个地方,说明如何删除其中的一个条目,但在这种情况下,这并不会帮助我。 我非常希望PowerShell从远程PC拉取应用程序列表,然后删除DefaultApps.csv中存在的任何条目。

我不知道从哪里开始,因为除了这个脚本以外,我还没有做过多的编辑CSV文件的工作。 有人能指出我如何做到这一点正确的方向吗? 如果你知道我应该看的cmdlet / switch,或者如果你有一个解释这个的页面的链接,这将是一个好的开始。

$PCListOld = Get-Content F:\PCList-Old.txt ForEach ($PC in $PCListOld) { $AppList = Get-WmiObject -Computer $PC Win32_Product | Sort-Object Name | Select-Object Name $AppList | Export-CSV C:\Scripts\AppLists\$PC.csv -NoTypeInformation Import-CSV C:\Scripts\AppLists\DefaultApps.csv | Export-CSV C:\Scripts\AppLists\$PC.csv -Append } 

我不知道从哪里开始,因为我没有做太多的编辑CSV文件

但是你并没有试图编辑一个CSV文件,所以…不要把默认的应用程序放在输出中,所以你不必把它们过滤掉。 如果它在默认的应用程序中,请不要将应用程序放在输出中。

 $DefaultApps = Import-CSV C:\Scripts\AppLists\DefaultApps.csv $PCListOld = Get-Content F:\PCList-Old.txt ForEach ($PC in $PCListOld) { $AppList = Get-WmiObject -Computer $PC Win32_Product | Sort-Object Name | Select-Object Name $AppList | Where-Object {$_.Name -notin $DefaultApps.Name} | Export-CSV C:\Scripts\AppLists\$PC.csv -NoTypeInformation } 

未经testing,但大致如此。

PS。 NB。