Я работаю над своим экземпляром Office 365 Exchange с Powershell, и у меня возникли проблемы с командой, которую, как я знаю, я успешно выполнял в прошлом. Я разбил эту команду на части и запускал их все самостоятельно, но просто не могу заставить этот цикл ForEach работать. Что я могу здесь упустить?
PS C:\Users\bsigrist> ForEach ($Mailbox in (Get-Mailbox -RecipientTypeDetails UserMailbox))
{ $cal = $Mailbox.alias+":\Calendar" Set-MailboxFolderPermission -Identity $cal
-User Default -AccessRights LimitedDetails }
At line:1 char:108
+ ... cal = $Mailbox.alias+":\Calendar" Set-MailboxFolderPermission -Identi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unexpected token 'Set-MailboxFolderPermission' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordExcep
tion
+ FullyQualifiedErrorId : UnexpectedToken
$cal = $Mailbox.alias+":\Calendar" Set-MailboxFolderPermission -Identity $cal
-User Default -AccessRights LimitedDetails
Это отправляется как одна команда Powershell, но я думаю, вы действительно хотите, чтобы это были две команды. Первая команда присваивает значение $cal
а вторая команда запускается Set-MailboxFolderPermission
.
Как указывает longneck, вы можете поставить точку с запятой для разделения этих команд. Также обсуждается в следующих местах:
https://blogs.msdn.microsoft.com/mattn/2012/04/28/powershell-command-separator-is-and-not/
https://superuser.com/questions/612409/how-do-i-run-multiple-commands-on-one-line-in-powershell
Вам не хватает точки с запятой после ":\Calendar"