レジストリを編集するコードがあるため、管理者として実行する必要があります。これを行うには、実行中の PowerShell スクリプトから新しい PowerShell プロセスを開始し、レジストリ キー パスの一部を渡します。これはたまたまバージョン番号 (例: "12.0") です。ただし、新しい PowerShell プロセスの関数は文字列を「12.0」ではなく「12」として受け取るため、レジストリ キーが見つからないというエラーが発生します。
問題を再現する小さなサンプル powershell スクリプトを作成しました。スニペットは次のとおりです。
$ScriptBlock = {
function Test([string]$VisualStudioVersion)
{
$VisualStudioVersion # This always displays 12, instead of 12.0
$Host.UI.RawUI.ReadKey()
}
}
# Run the script block's function.
Start-Process -FilePath PowerShell -ArgumentList "-Command & {$ScriptBlock Test(""12.0"")}"
ここでは「12.0」をハードコーディングしましたが、実際には変数を渡したいと考えています。
私が間違っていることについてのアイデアはありますか?前もって感謝します。