私はリモートマシン上の特定のPowerShellモジュールを使用していくつかのことをする小さなPowerShellスクリプトを作成しようとしています。このモジュールを使用するには、PowerShell Version> =を使用する必要があります。特定のPowershellバージョンを使用したリモートターゲットでのInvoke-Commandは可能ですか?
私は、リモートマシン上でスクリプトを実行するためにInvoke-Command
を使用してみましたが、私は、リモートターゲット上で利用可能な最新のPowerShellのバージョンを使用する方法を見つけ出すことはできません。
$SessionOption = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
$Session = New-PSSession -ComputerName "TARGETHOST" -Authentication Negotiate -SessionOption $SessionOption
Invoke-Command -Session $Session -ScriptBlock {
(Get-Host).Version
}
を使用バージョン1になります。
$SessionOption = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
$Session = New-PSSession -ComputerName "TARGETHOST" -Authentication Negotiate -SessionOption $SessionOption
Invoke-Command -Session $Session -ScriptBlock{
C:\Windows\System32\WindowsPowerShell\v1.0\Powershell.exe -Command {
(Get-Host).Version
}
}
しかし、私はリモートセッション内で別のPSセッションを生み出していますので、私は、これは素晴らしい解決策だとは思わない:いくつかの工夫の後、私は私がやりたい方法を見つけました。今私は、同じことを達成するためのより良い方法があるのだろうかと思っています。
あなたの答えと解説のためのありがとうございました。 問題は、2番目の方法を使用すると、私が使用しているモジュールが動作することだけです。それ以外の場合は、次のエラーが発生します。 'このコマンドレットには、PowerShellバージョン3.0以降が必要です。 + CategoryInfo:InvalidOperation:(:) [Write-Error]、WriteErrorException + FullyQualifiedErrorId:Microsoft.PowerShell.Commands.WriteErrorException、Invoke-SCXDiscovery + PSComputerName:TARGETHOST' – Manuel