Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Get-AzureADUser删除PowerShell中特定域的完整电子邮件_Powershell_Email_Scripting_Azure Active Directory - Fatal编程技术网

使用Get-AzureADUser删除PowerShell中特定域的完整电子邮件

使用Get-AzureADUser删除PowerShell中特定域的完整电子邮件,powershell,email,scripting,azure-active-directory,Powershell,Email,Scripting,Azure Active Directory,我目前正在使用下面的脚本 Get-AzureADUser | Select-Object @( @{L = "Name"; E = { $_.DisplayName}} @{L = "Email"; E = { $_.UserPrincipalName}} @{L = "Aliases"; E = { $_.ProxyAddresses -replace '^smtp:' -join ';' }} ) 我的大多数结果在数组中返回

我目前正在使用下面的脚本

 Get-AzureADUser |
    Select-Object @(
        @{L = "Name"; E = { $_.DisplayName}}
        @{L = "Email"; E = { $_.UserPrincipalName}}
        @{L = "Aliases"; E = { $_.ProxyAddresses -replace '^smtp:' -join ';' }}
    )
我的大多数结果在数组中返回的电子邮件地址类似于
email@domain.onmicrosoft.com
。我需要从别名(ProxyAddresss)字段中的数组中删除这些电子邮件。基本上,任何包含Microsoft.com的电子邮件都需要删除

当前结果:
email1@domain.com;email2@domain.com;email3@domain.onmicrosoft.com


期望结果:
email1@domain.com;email2@domain.com

您可以在那里链接另一个操作员,以用作过滤器:

Get-AzureADUser |
    Select-Object @(
        @{L = "Name"; E = { $_.DisplayName}}
        @{L = "Email"; E = { $_.UserPrincipalName}}
        @{L = "Aliases"; E = { $_.ProxyAddresses -notlike '*onmicrosoft*' -replace '^smtp:' -join ';' }}
    )
但现在阅读起来越来越难了。请注意,表达式是一个完整的脚本块,因此您可以将其拆分为多行,并将内容写得更清楚,例如:

Get-AzureADUser |
    Select-Object @(
        @{L = "Name"; E = { $_.DisplayName}}
        @{L = "Email"; E = { $_.UserPrincipalName}}
        @{L = "Aliases"; E = { 

            $filteredMails = $_.ProxyAddresses | Where-Object { 
                $_ -notlike '*onmicrosoft*'
            }

            $filteredMails = $filteredMails -replace '^smtp:'

            $filteredMails -join ';' 

        }}
    )

这个问题已经被提出和回答了@西奥:他们问了一个问题,我回答了,他们接受了我的回答。在那之后,他们在评论中扩展/改变了他们的问题,这是不礼貌的。一个不同的问题实际上应该是关于StackOverflow的不同问题。除此之外,你为什么要评论我的答案?关于唯一有意义的事情,是你要求发问者改变他们对另一个问题的接受答案,并让你将这个问题标记为重复,或以某种方式标记为主持人的注意。除了删除我的答案之外,我无能为力。对不起,我在错误的地方发表了评论。是关于问题,不是你的答案。后来我标记为重复。可能是重复的