Как исправить ошибку «Указанный аргумент вышел за пределы допустимых значений» в powershell - PullRequest
0 голосов
/ 11 января 2019

Я работаю над сценарием 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, но это выдает совершенно другую ошибку.

Ожидаемый результат будет целым числом хитов за этот конкретный день (как и в случае с методом месяца, когда нет ошибок, и я получаю целое число месячных хитов).

Мой код:

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)  

Нужно ли каким-либо образом менять дату фильтра или я делаю что-то не так с кодом?

Спасибо

1 Ответ

0 голосов
/ 12 января 2019

Вы делаете все правильно, но данные хранятся только 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...