Вопрос о хэш-таблице PowerShell - офис 365 - PullRequest
0 голосов
/ 07 апреля 2020

Мне нужно установить OOF-сообщение для 80 пользователей в O365.

Я нашел командлет Set-MailboxAutoReplyConfiguration, который я могу использовать для автоматизации процедуры, и он выглядит нормально, но я, вероятно, что-то упустил.

Вот код:

$usersfile = import-csv "C:\Users\Out Of office bulk\Users.csv"



$setmailbox = @{
'Identity' = $usersfile.UserPrincipalName
'AutoReplyState'  = 'Scheduled'
'externalaudience' = 'all'
'InternalMessage' = 'I am not here'
'ExternalMessage' = 'I am not here'
'StartTime' = '01/02/2020 01:00:00'
'EndTime' = '02/02/2020 23:00:00'
}

Set-MailboxAutoReplyConfiguration @setmailbox

Моя проблема связана с параметром Identity,

, когда я запускаю $setmailbox

Я вижу что он показывает правильный UPN из CSV-файла:

Name                           Value                                                                                                                                                                                                                                                          
----                           -----                                                                                                                                                                                                                                                          
AutoReplyState                 Scheduled                                                                                                                                                                                                                                                      
externalaudience               all                                                                                                                                                                                                                                                            
Identity                       {blah@blah.com, blah2@blah.com}                                                                                                                                                                                                                       
StartTime                      01/02/2020 01:00:00                                                                                                                                                                                                                                            
EndTime                        02/02/2020 23:00:00                                                                                                                                                                                                                                            
InternalMessage                I am not here                                                                                                                                                                                                                                                  
ExternalMessage                I am not here                                                                                                                                                                                                                                                  

Но когда я запускаю скрипт, я получаю эту ошибку:

Cannot process argument transformation on parameter 'Identity'. Cannot convert the "System.Collections.ArrayList" value of type "System.Collections.ArrayList" to type "Microsoft.Exchange.Configuration.Tasks.MailboxLocationIdParameter".
    + CategoryInfo          : InvalidData: (:) [Set-MailboxAutoReplyConfiguration], ParameterBindin...mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Set-MailboxAutoReplyConfiguration
    + PSComputerName        : outlook.office365.com

Я пытался изменить это :

'Identity' = $usersfile.UserPrincipalName

почти для любой вещи, и это не сработало.

Большое спасибо за вашу помощь.

PS:

I знаю, что я могу сделать что-то подобное:


Import-Csv 'C:\Users.csv' | ForEach-Object {
$user = $_."UserPrincipalName"
Set-MailboxAutoReplyConfiguration `
 -Identity $user -AutoReplyState Scheduled -StartTime "07/10/2018 01:00:00" ` 
 -EndTime "7/15/2018 23:00:00" -InternalMessage "I am not here" -ExternalMessage "I am not here."
}

, но для практики я предпочитаю делать это с таблицей ha sh, чтобы лучше это понять.

Решение: спасибо @Lee_Dailey, я не заметил, что параметр identity принимает только одного пользователя каждый раз, поэтому для многопользовательского решения нужно использовать foreach-object.

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