PowerShell を使用してリモート マシンにサービスをインストールしようとしています。
これまでのところ、次のものがあります。
Invoke-Command -ComputerName $remoteComputerName -ScriptBlock {
param($password=$password,$username=$username)
$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
$credentials = New-Object System.Management.Automation.PSCredential ($username, $secpasswd)
New-Service -Name "XXX" -BinaryPathName "c:\XXX.exe" -DisplayName "XXX XXX XXX" -Description "XXXXXX." -Credential $credentials -ErrorVariable errortext
Write-Host("Error in: " + $errortext)
} -ArgumentList $password,$username -ErrorVariable errortext
Write-Host("Error out: " + $errortext)
New-Service の実行中にエラーが発生すると、$errortext ErrorVariable が ScriptBlock 内で適切に設定されます。
Invoke-Command の ErrorVariable が設定されません (これは予想どおりです)。
私の質問は:
Invoke-Command の ErrorVariable を、ScriptBlock 内で発生したエラーに設定することは何とか可能ですか?
InstalUtil、WMI、および SC を使用してサービスをインストールすることもできますが、現時点では関係ありません。