我想创建一个功能来运行几个cmdlet。
例如:
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
做同样的事情就可以了。
答案 0 :(得分:0)
如果所有命令都使用相同的参数,则可以执行以下操作:
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
}
}
注意:这仅适用于函数,而据我所知不是cmdlet。那里涉及一些额外的步骤。