Передача параметров в переменную Powershell - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь отключить функции "Email Apps" на Azure admin center для сценария отключения. Я не уверен, что смогу передать несколько параметров в цикл foreach, ниже приведен код. Я выполнил код с определенным параметром и без определенного параметра.

param(
  [parameter]$DisableApps
)
$DisableApps = ("OWAEnabled" , "EwsEnabled" , "PopEnabled")
foreach ($i in $DisableApps){Set-CASMailbox "Sahand.Test" $i $false}

Я получаю ошибку -

Не найден позиционный параметр, принимающий аргумент '-OWAEnabled. + CategoryInfo: InvalidArgument: (:) [Set-CASMailbox], ParameterBindingException + FullyQualifiedErrorId: PositionalParameterNotFound, Set-CASMailbox + PSComputerName: outlook.office365.com

Ответы [ 2 ]

0 голосов
/ 19 мая 2018
param([bool]$CASMailboxParams, [string]$User)
$User = "Sahand.Test"
$CASMailboxParams = @{
    OWAEnabled = $False
    EwsEnabled = $False
    PopEnabled = $False
}
        Set-CASMailbox -Identity $User @CASMailboxParams
        Get-CASMailbox $User                

Это позволит вам передавать параметры через команду и проверять ее в конце почтового ящика.Примечание. Этот сценарий предназначен для Exchange Powershell.

0 голосов
/ 17 мая 2018

То, что вы можете искать, называется splatting

Если вы определяете свои параметры в хеш-таблице, вы можете передать их как параметры, когда вы используете @ как знакоператор.(Обратите внимание, что @ может использоваться не только в качестве оператора splat.)

param(
    [string]$Identity = "Sahand.Test",
    [switch]$DisableApps 
)
If ($DisableApps) {
    $CASMailboxParams = @{
        Identity =  $Identity
        OWAEnabled = $False
        EwsEnabled = $False
        PopEnabled = $False
    }
    Set-CASMailbox @CASMailboxParams
} else {
    Set-CASMailbox $Identity
}

Затем, используя параметры вашего скрипта, вы можете использовать -DisableApps, чтобы установить для этих параметров значение false.

.\examplescript.ps1 -Identity 'differentuser' -DisableApps
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...