次のPowerShellスクリプトがあります。
$BizTalkHosts = "BTSSvc*"
Foreach($svc in Invoke-Command -Computer d-vasbiz01 -ScriptBlock{ get-service -Name $BizTalkHosts})
{
Write-Host $svc.name
}
これにより、「BTSSVC*」で始まるリモートコンピューター上のサービスのリストが返されます。問題は、実行時まで実際にサービス名がわからないことです。サービス名はパラメータとしてスクリプトに渡されます。
上記のスクリプトを実行すると、すべてのサービスのリストが表示されます。必要なものではありません。ただし、文字列リテラルをget-serviceコマンドレット(つまり、get-service -Name "BTSSvc *)に提供すると、正常に機能し、フィルターされたリストが提供されます。
誰かが私が間違っていることを説明できますか?