Команда New-Mailbox не принимает аргумент -Equipment - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь создать новые ресурсы в Exchange Online с помощью сценария, и он работает, если я набираю строку вручную, но при запуске сценария команда New-Mailbox неожиданно не может принять аргумент "-Equipment".

Ошибка сценария в следующей строке:

New-Mailbox -Name "$($Resource)" -$($Type)

Ошибка показывает следующее:

A positional parameter cannot be found that accepts argument '-Equipment'.
 + CategoryInfo          : InvalidArgument: (:) [New-Mailbox], ParameterBindingException"

1 Ответ

2 голосов
/ 19 июня 2019

PowerShell интерпретирует -$($Type) как строковый аргумент, а не имя параметра. Используйте splatting для условной передачи таких параметров:

$extraParams = @{ $Type = $true }
New-Mailbox -Name "$($Resource)" @extraParams

Я не уверен, какие другие типы почтовых ящиков доступны в Exchange Online, но вы, вероятно, захотите выяснить это и применить некоторую проверку ввода:

param(
    [string]$Resource,

    [ValidateSet('Equipment','Person','Room')]
    [string]$Type
)

# do other stuff here

# If someone passed a wrong kind of `$Type`, the script would have already thrown an error
$extraParams = @{ $Type = $true }
New-Mailbox -Name "$($Resource)" @extraParams
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...