我正在尝试为Exchange命令行管理程序编写Powershell脚本,将联系人列表从csv文件导入通讯组。

我从开始

Import-csv C:\filename.csv | forEach-Object {New-MailContact .......}

效果很好,除了我的csv文件中的某些条目的电子邮件地址为空,而且因为ExternalEmailAddress为空,因此创建新联系人的消息也没有了。因此,我尝试:
Import-csv C:\filename.csv | ForEach-Object { Where-Object {$_.ExternalEmailAddress -ne "" } | New-MailContact -Name $_.Name -ExternalEmailAddress $_.ExternalEmailAddress....}

但这似乎不起作用-它没有过滤出包含空白电子邮件地址的条目。

我究竟做错了什么?

最佳答案

我认为您可能想在Where-Object之前使用ForEach-Object,因为它会过滤沿管道传递的对象。

根据New-MailContact cmdlet支持的功能,您可能可以将结果直接传递到其中,或者可能必须将它们一一传递。

全部一次(不使用ForEach-Object):

Import-csv C:\filename.csv | Where-Object {$_.ExternalEmailAddress -ne "" } | New-MailContact -Name $_.Name -ExternalEmailAddress $_.ExternalEmailAddress }

一对一(通过使用ForEach-Object):
Import-csv C:\filename.csv | Where-Object {$_.ExternalEmailAddress -ne "" } | ForEach-Object { New-MailContact -Name $_.Name -ExternalEmailAddress $_.ExternalEmailAddress }

关于使用where-object的Powershell脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4947101/

10-12 05:34
查看更多