Powershell ISE返回空字符串,但在shell中工作正常

Powershell ISE返回空字符串,但在shell中工作正常,powershell,exchange-server,Powershell,Exchange Server,我有以下命令: $startDate='01/02/2013' $endDate='26/03/2014' Search-AdminAuditLog -Cmdlets set-mailboxsearch -StartDate $startDate -EndDate $endDate | where {$_.cmdletparameters.name -notcontains "inplaceholdenabled"}|Add-Member -Name "SearchName" -MemberTy

我有以下命令:

$startDate='01/02/2013'
$endDate='26/03/2014'
Search-AdminAuditLog -Cmdlets set-mailboxsearch -StartDate $startDate -EndDate $endDate | where {$_.cmdletparameters.name -notcontains "inplaceholdenabled"}|Add-Member -Name "SearchName" -MemberType ScriptProperty -PassThru -Value {Get-MailboxSearch -Identity $this.objectmodified} | select "objectmodified","Caller","Rundate","cmdletname",@{Name="SearchName";Expression={$_.searchname.Name}}  
它返回:

ObjectModified : XXXXXXXX
Caller         : Administrator
RunDate        : 25/03/2014 4:33:17 PM
CmdletName     : Set-MailboxSearch
SearchName     : 

ObjectModified : AAMkADQyZDMxY2UwL 
Caller         : Administrator
RunDate        : 25/03/2014 9:35:02 AM
CmdletName     : Set-MailboxSearch
SearchName     : 
在PowerShell ISE中运行时,SearchName字段始终为空字符串,但如果在shell中复制并运行相同的命令,则它会将SearchName返回为“test search 2 to 7”,这是必需的值


为什么这两个地方的行为有所不同?我在这里做错了什么?

答案可能是在这个重复的线程中,基本上ISE与控制台不同,并且有许多警告供您学习

换句话说,您的脚本可能没有问题,ISE存在
问题