PowerShell Изменить командлет в функции - PullRequest
0 голосов
/ 05 февраля 2019

Я хочу создать функцию для запуска нескольких командлетов.

Например:

Test-AcctDBConnection -DBConnection $CTXDBString
Test-AdminDBConnection -DBConnection $CTXDBString

Все команды в основном одинаковы.Только что изменено после Test-$someParam

Я хочу создать простую функцию, подобную этой

function CTX-Check {
    Param([string]$Check_Service)

    Write-Host $Check_Service
    try {
        Test-$Check_Service -DBConnection $CTXDBString
    } catch {
        Write-Host -ForegroundColor Yellow $_.Exception.Message
    }    
}

Некоторые идеи для решения этой проблемы?Если я сделаю то же самое с Set-$someParam, это будет нормально.

1 Ответ

0 голосов
/ 05 февраля 2019

Если все ваши команды принимают одинаковые параметры, вы можете сделать что-то вроде этого:

function Test-Citrix {
    [CmdletBinding()]
    param(
        [string]
        $Service,

        [string]
        $DBConnection
    )
    $PSBoundParameters.Remove('Service')

    foreach ($cmd in (Get-Command -Verb Test | ? Source -like Citrix*)) {
        & $cmd.Definition @PSBoundParameters
    }
}

Примечание: это будет работать только с функциями, а не с командлетами, насколько мне известно.Там есть несколько дополнительных шагов.

...