В вашей первой команде вы включаете | 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
}