Нет данных сеанса пользователя для пользователя в указанном диапазоне дат - PullRequest
0 голосов
/ 11 июня 2018

Я использую следующий запрос для получения информации о сеансе пользователя в указанном диапазоне дат из o365 skype для бизнес-служб.

$mbxes = Get-CsOnlineUser | select UserPrincipalName
$startTime = "5/1/2018"
foreach ($mbx in $mbxes) {
  Get-CsUserSession -User $mbx -StartTime $startTime
}

При выполнении этого запроса я получаю следующие предупреждения для всех почтовых ящиков, которые я получаю:

WARNING: There is no user session data for the user @{UserPrincipalName=account1@companyX.onmicrosoft.com} within the specified date range 01/05/2018 00:00:00 -07:00 to
11/06/2018 05:22:31 -07:00.

Однако, когда я просто запускаю эту команду:

$mbxes = "account1@companyX.onmicrosoft.com"
$startTime = "5/1/2018"
foreach ($mbx in $mbxes) {
  Get-CsUserSession -User $mbx -StartTime $startTime
}

Я получаю данные всех сеансов, отвечающих на этот почтовый ящик.Мне интересно, почему, когда я создаю переменную со всем адресом почтового ящика, он не возвращает мне данные, хотя данные сеанса существуют.

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

В вашей первой команде вы включаете | select UserPrincipalName.Это назначит $mboxes как массив объектов, которые имеют только свойство UserPrincipalName.

Из второй команды похоже, что Get-CsUserSession ожидает, что параметр -User будет строкой, но вы все еще передаете объект.Вероятно, вы можете решить с помощью любого из следующих:

Разверните UserPrincipalName как строку, тогда у вас есть строковый массив:

$mbxes = Get-CsOnlineUser | select -ExpandProperty UserPrincipalName
$startTime = "5/1/2018"
foreach ($mbx in $mbxes) {
  Get-CsUserSession -User $mbx -StartTime $startTime
}

Другой метод расширения для получения массивастроки:

$mbxes = (Get-CsOnlineUser).UserPrincipalName
$startTime = "5/1/2018"
foreach ($mbx in $mbxes) {
  Get-CsUserSession -User $mbx -StartTime $startTime
}

Явно выберите свойство при получении сеанса:

$mbxes = Get-CsOnlineUser | select UserPrincipalName
$startTime = "5/1/2018"
foreach ($mbx in $mbxes) {
  Get-CsUserSession -User $mbx.UserPrincipalName -StartTime $startTime
}
0 голосов
/ 11 июня 2018

Пользователь: @{UserPrincipalName=account1@companyX.onmicrosoft.com} не является действительным userPrincipalName,

Измените это:

$mbxes = Get-CsOnlineUser | select UserPrincipalName

На:

$mbxes = Get-CsOnlineUser | select -Expand UserPrincipalName

см .: https://blogs.msdn.microsoft.com/powershell/2009/09/13/select-expandproperty-propertyname/

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