私はこのコードスニペットを持っています。アイデアは、リモート pc で呼び出しコマンドを呼び出すことですが、コマンドが失敗した場合は、再試行する必要があります。
コードは次のようになります。
Function Run-Command
{
param(
[Parameter(Mandatory = $true)]
[Uri[]] $ConnectionUri,
[Parameter(Mandatory = $true)]
[PSCredential] $Credential,
[Parameter(Mandatory = $true)]
[ScriptBlock] $ScriptBlock,
[Parameter(Mandatory = $true)]
[Int] $Time,
[Parameter(Mandatory = $false)]
[Object[]] $ArgumentList
)
for($retry = 0; $retry -le 10; $retry++)
{
try
{
Invoke-Command -ConnectionUri $ConnectionUri -Credential $Credential -ScriptBlock $ScriptBlock -ArgumentList $ArgumentList #-ErrorAction SilentlyContinue
if ($?)
{
break
}
Write-Verbose "Server is not ready yet . . . sleeping and trying again in $Time seconds."
Start-Sleep -Seconds $Time
}
catch
{
Write-Verbose "Server is not ready yet . . . sleeping and trying again in $Time seconds."
Start-Sleep -Seconds $Time
}
}
}
次に、次のように関数を呼び出すことができるはずです。
Run-Command -ConnectionUri $ConnectionUri -Credential $Credential -ScriptBlock $SomeScriptBlock -Time 30
しかし、なぜか思ったように動かない。
前もって感謝します
よろしくマグナス