Powershell中如何解决“指定的参数超出有效值范围”的错误

时间:2019-01-10 21:40:24

标签: powershell sharepoint

我正在使用Powershell脚本来自动化SharePoint 2016本地流行趋势报告。 为此,我将SearchServiceApplication与方法“ GetRollupAnalyticsItemData”结合使用,该方法可以很好地获得总匹配数,唯一身份用户等。

现在,我试图每天和每月获得点击量和用户。为此,我找到了“ GetHitCountForDay(DateTime)”和“ GetHitCountForMonth(DateTime)”方法。

每月工作正常,我得到了预期的输出,但是尝试使用'GetHitCountForDay'方法时收到错误消息。错误是:

Exception calling "GetHitCountForDay" with "1" argument(s): "Specified argument was out of the range of valid values. 
Parameter name: date"
At C:\Users\****\Desktop\Untitled4.ps1:11 char:1
+ $result.GetHitCountForDay($FilterDate)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ArgumentOutOfRangeException

我试图将DateTime更改为仅Date,但这完全给出了另一个错误。

预期的输出将是该天特定日期的点击数的整数(就像使用month方法一样,其中不会出现错误,并且我得到的是每月点击数的整数)。

我的代码:

searchApp = Get-SPEnterpriseSearchServiceApplication
$site = Get-SPSite http://sitecollection

$result = $searchApp.GetRollupAnalyticsItemData(1,[System.Guid]::Empty,$Site.ID,[System.Guid]::Empty)

$FilterDate = Get-Date "2018-12-20"
$result.GetHitCountForDay($FilterDate)
$result.GetHitCountForMonth($FilterDate)  

我需要以任何方式更改filterdate还是我在代码中做错了什么?

谢谢

1 个答案:

答案 0 :(得分:0)

您做对了,但是默认情况下数据仅存储14天(最大)。

$ssp = Get-SPEnterpriseSearchServiceApplicationProxy
$config = $ssp.GetAnalyticsTenantConfiguration([Guid]::Empty)
$config.EventTypeDefinitions | ? { $_.EventTypeId -eq 1 }

寻找RecentPopularityTimeframe

  

参考:

     

https://docs.microsoft.com/en-us/sharepoint/administration/configure-recommendations-and-usage-event-types#change-the-recent-time-period-for-a-usage-event-type