Мне нужно установить 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
.