0

我是 PowerShell 的新手。我需要编写一个脚本,仅显示 CSV 文件中的非人类电子邮件地址。

我的意思是它只显示像“管理员、新闻、支持、传真”这样的地址,而不是像“Hans Mueller、Tim Cook、Paul Rot”这样的地址。这是列表中的一个示例:示例

所以我需要一个可以过滤多个关键字的函数。

CVS 文件中有电子邮件地址、别名、名称。CVS 文件从 Exchange 管理中心导出。

我试过这个:

$csvdata = import-csv "C:\Users\benedikt.pracht\Desktop\CVS Vergleich\Export.csv" -Delimiter ","
$csvdata | Where-object {$_.Emailaddress -match "@domain1.local"}
foreach ($user in $csvdata){
if($user.name -match "admin"){$parsedusers += $user.name}
elseif($user.name -match "Administrator"){$Parsedusers += $user.name}
}
$parsedusers | Out-file "C:\Users\benedikt.pracht\Desktop\CVS Vergleich\parsedcsvdata.csv"

但它只给出了这个: 在此处输入图像描述

4

1 回答 1

0

有很多方法可以做到这一点,但这里是一个例子

$csvdata = import-csv "C:\csvdata"
$csvdata |
 Where-object {$_.Emailaddress -match "@domain1.local"} |
 Export-csv "C:\parsedcsvdata" -NoTypeInformation

这将获取具有您的域的所有电子邮件地址。您可以按照相同的步骤进行更多过滤。

$csvdata = import-csv "C:\csvdata"
$csvdata | Where-object {$_.Emailaddress -match "@domain1.local"}
foreach ($user in $csvdata){
if($user.name -match "anotherword"){$parsedusers += $user.name}
elseif($user.name -match "anotherword"){$Parsedusers += $user.name}
}
$parsedusers | Out-file "C:\parsedcsvdata.csv"
于 2021-10-11T15:59:15.600 回答