![]() |
Замена команды в функции по условию
Привет!
Подскажите, как заменить команду в функции по условию. У меня отчёт по Exchange, и надо поменять команду в зависимости от того, обычная это группа рассылки или динамическая. Идея такая: Код:
function Get-ExtendedPerms ($value) { $command просто так как строка не вставляется, ошибка следующая: Код:
The input object cannot be bound to any parameters for the command either because the command does not take pipeline input or the input and its properties do not match any of the parameters that take pipel Код:
($command).GetType() Код:
$command -as [string] |
Цитата:
$command ведь и так строка... Код:
$a = 'dir' Не пойдет... & не даст запускать команды с параметрами... Но там у тебя ещё загвоздка в двойных кавычках, powershell попытается выполнить выражение $() с раскрытием переменных... В общем, надо переписать строку так: Код:
$command = if ($value.recipienttype -match "dynamic") {{Get-DynamicDistributionGroup $($value.name)}} else {{Get-DistributionGroup $($value.name)}} Код:
$command = if ($value.recipienttype -match "dynamic") {'Get-DynamicDistributionGroup $($value.name)'} else {'Get-DistributionGroup $($value.name)'} Код:
$command|Invoke-Expression|... |
Спасибо!
Пока ехал с работы, понял, что составлять строку не нужно, а надо просто выполнить команду и записать в переменную уже готовый объект. Код:
$command = if ($value.recipienttype -match "dynamic") {Get-DynamicDistributionGroup $value} else {Get-DistributionGroup $value} |
Цитата:
|
Время: 18:32. |
Время: 18:32.
© OSzone.net 2001-