CMDからパラメータとしてPowerShellスクリプトに配列を渡す際に問題があります。CMDからPowerShellにパラメータとして配列を渡すと問題が発生する
powershell -file .\script.ps1 -serverArray Server1,Server2
$serverArray
が配列渡されていないので、私はエラーを取得する:場合
Server1,Server2 Get-WmiObject : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA) At C:\script.ps1:58 char:29 + $servState = (Get-WmiObject <<<< Win32_Service -ComputerName $server -Filter "name='$serviceName'").State + CategoryInfo : InvalidOperation: (:) [Get-WmiObject], COMException + FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
を私はCMDからスクリプトを呼び出す方法
[CmdletBinding()]
Param(
[string[]]$serverArray,
)
$serviceName = 'service1'
function getState {
Process {
$serverArray
foreach ($server in $serverArray) {
$servState = (Get-WmiObject Win32_Service -ComputerName $server -Filter "name='$serviceName'").State
}
}
getState
:ここではPSコードの例 スクリプトが$serverArray
を配列として受け取るため、PowerShellウィンドウから同じコマンドを実行します。
.\script.ps1 -serverArray Server1,Server2
Server1 Server2
'-file' - >' -command' – PetSerAl
してください、それはDOEを確認するためにあなたの[MCVE]コードをテスト、実行してくださいあなたのパラメータ定義の偽の末尾のカンマや関数の閉じ括弧のような追加のエラーを導入しないでください。 –