Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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
Powershell O365 PShell类似收件人搜索不会使用Where{$\.RecipientAddress-like返回正确的结果_Powershell_Office365 - Fatal编程技术网

Powershell O365 PShell类似收件人搜索不会使用Where{$\.RecipientAddress-like返回正确的结果

Powershell O365 PShell类似收件人搜索不会使用Where{$\.RecipientAddress-like返回正确的结果,powershell,office365,Powershell,Office365,早上好 对于Microsoft的Office365 EOL powershell cmdlet有一个奇怪的怪癖,“-like”过滤器似乎无法报告准确的结果 下面是一个例子: get-messagetrace -startdate 08/20/2018 -enddate 08/30/2018 -senderaddress bob@diversifiedstaffing.com 我得到了四个预期的结果 但是,如果我使用类过滤器: get-messagetrace -startdate 08/20/

早上好

对于Microsoft的Office365 EOL powershell cmdlet有一个奇怪的怪癖,“-like”过滤器似乎无法报告准确的结果

下面是一个例子:

get-messagetrace -startdate 08/20/2018 -enddate 08/30/2018 -senderaddress bob@diversifiedstaffing.com
我得到了四个预期的结果

但是,如果我使用类过滤器:

get-messagetrace -startdate 08/20/2018 -enddate 08/30/2018 | Where {$_.SenderAddress -like '*diversified*'}
我得到的结果为零。预期将返回发件人域地址中具有“多样化”的任何内容。我将看到至少四个结果

对此有什么想法吗?我想我遗漏了一些非常简单的东西,但就是不太明白

提前谢谢你,祝你有一个美好的星期

2018年9月26日更新:由于我能够在多个域(包括大型ISP)上复制该问题,MS的罚单处于活动状态。MS承认该行为很奇怪,不应该产生我看到的结果。一旦找到修复,将进行更新

奇怪的是,Search and Compliance GUI确实返回了预期的结果。我们排除了不同的Powershell和.NET版本(供参考,PS 5.0/.NET 4.7)

2018年3月10日更新:以MS为例,使用本地主要ISP继续取得进展:

get-messagetrace -startdate 09/03/2018 -enddate 10/03/2018 | Where {$_.SenderAddress -like '*telus*'}
当我导出到CSV并手动计数时,这里的结果是10。MS建议将其声明为变量并计数:

PS U:\> $messages = get-messagetrace -startdate 09/03/2018 -enddate 10/03/2018 | Where {$_.SenderAddress -like '*telus*'}
PS U:\> $messages.Count
10
我后来发现,默认情况下,一个月的电子邮件数量限制为1000个结果;我可以将结果扩展到5000个:

PS U:\> $messages = get-messagetrace -startdate 09/03/2018 -enddate 10/03/2018 -PageSize 5000 | Where {$_.SenderAddress -like '*telus*'}
PS U:\> $messages.Count
46

继续戳。如果我在正确的轨道上,“差异”可能根本不是差异,而是MS在PS和eDiscovery中扭曲我的结果的强制限制。

你确定你已登录MSOL并远程登录EXO吗

如果您只是在内部Exchange服务器上执行此操作,则您正在使用本地Exchange cmdlet,这些cmdlet不会从O365恢复任何内容

如果您位于内部Exchange服务器上,并且通过远程处理导入了EXO cmdlet,并且没有唯一标识它们,和/或没有使用-clobber,则可能存在其他问题

我只是对我的房客做了一个快速的点击,得到了预期的结果

Connect-MsolService -Credential $MSOLCreds
Connect-AzureAD -Credential $MSOLCreds

$ExchangeOnlineSession = New-PSSession -ConfigurationName 'Microsoft.Exchange' `
-ConnectionUri 'https://outlook.office365.com/PowerShell-liveid/' `
-Authentication Basic -Credential $MSOLCreds -AllowRedirection
Import-PSSession $ExchangeOnlineSession -Prefix 'EXO'

Get-EXOMessageTrace -startdate 08/01/2018 -enddate 08/30/2018  | 
Where {$_.SenderAddress -like '*MyO365VanityDomain*'} | 
Format-Table -AutoSize

# Results

Received             Sender Address                       Recipient Address   Subject                   
--------             --------------                       -----------------   -------                   
8/29/2018 8:48:10 AM SomeEXOUsername@MyO365VanityDomain SomeRecipientAddress  Undeliverable: Your Off...
8/28/2018 3:00:30 PM SomeEXOUsername@MyO365VanityDomain bounce-108_html...    Undeliverable: Your Off...
8/22/2018 8:55:10 AM SomeEXOUsername@MyO365VanityDomain SomeRecipientAddress  Undeliverable: Weekly d...
如果您是从远程工作站执行此操作,并在prem和O365上为Exchange测试此操作,则需要设置不同的隐式远程会话,并且在使用这些命令时,请使用与正确会话关联的正确cmdlet

我经常使用前缀(所有on-prem使用EXP和online作为EXO),以避免如上所示的混淆,无论我是直接在Exchange服务器上还是通过远程处理

因此,使用前缀,cmdlet名词部分将被重命名:

Get-EXPMessageTrace
Get-EXOMessageTrace

我有一个最后的答案,这是一个挫折中的练习

我所发现的是管道字符|直接指向服务器之前的一切,而其他一切都是操作PowerShell本地收集的数据

运行此操作时:

get-messagetrace -startdate 09/03/2018 -enddate 10/03/2018
结果可能会产生误导,因为每条邮件可能有多个事件。一个非常好的示例是收件人是通讯组列表。与其使用cmdlet计算每个结果,不如只计算原始项。这样做的净效果是,结果似乎比预期的“少”

get-messagetrace cmdlet可以与历史消息跟踪相结合,以完全扩展收集的结果

简言之:

  • 内部部署将看到预期结果,不会出现问题
  • 混合解决方案是一个混合包,具体取决于使用哪台服务器 已连接(prem vs cloud)
  • 完全基于云的解决方案将有一个“淡化”版本的 结果和管理员需要考虑到这一点

Hi!初始连接命令如下:
Import Module$(Get ChildItem-Path$($env:LOCALAPPDATA+“\Apps\2.0\”)-Filter Microsoft.Exchange.Management.exowershellmodule.dll-Recurse)。全名|?{$-不匹配“\u none”}选择-第一个1)$EXOSession=New ExoPSSession Import PSSession$EXOSession
这整个序列将让我连接并提示我的2FA。值得一提的是,我们在prem基础架构上没有任何内容。请注意,我正在努力修复我的回复格式。对不起,请耐心等待。您在您的O365部署中没有提到。但是,我想不出任何原因,为什么您对O365使用MFA方法会对您的用例的成功或失败产生任何影响。您发布的内容至少在我的环境中有效,正如我在回复中所示。但是,我的基础实验室没有将MFA用于此用例,但它正在用于其他用例,到目前为止,没有任何问题与命令执行。正如你所发布的,这不是PS代码问题,但似乎是环境问题。感谢你澄清代码应按预期工作。我并不惊讶有一个奇怪的怪癖。过渡…由于必要性而加快。祝你周末愉快!正如你所发布的,这不是代码问题,但似乎是环境问题精神上的。就像Postnote所说的,你可以定期使用前缀来避免混淆。谢谢你!你知道环境中的什么会导致这种怪癖吗?我想这是微软进一步研究这个问题的一张罚单。