@hihoraaaaash

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

VScode内のターミナルをPwerShell 7 に変更したくて…

解決したいこと

PCのPowerShell ver.5からver.7に変更したので、
VScodeのターミナルも変更しようとしたのですが、
ネット記事を参考に変更してみても切り替わってくれません。

(settings.json)に以下を記すように記事に書いてあったのですが、
こちらに不具合ありますでしょうか?
ご回答よろしくお願いします。

(settings.json)に記載しているコード

{
    "terminal.integrated.profiles.windows": {
        

        "PowerShell": {
            "path": [
                "${env:ProgramFiles}\\PowerShell\\7\\pwsh.exe"
            ],
            "source": "PowerShell",
            "icon": "terminal-powershell",
            "args": [
                "-NoLogo",
                "-ExecutionPolicy",
                "Bypass"
            ]
        },
        
    },
    "terminal.integrated.defaultProfile.windows": "PowerShell",
}

書き換え後のver.情報

 $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      26100  2161    

自分で試したこと

元記事には(追加)や(省略)となっている部分はどう扱うべきか悩んで様々な方法を試しましたが、
変わることはありませんでした。
元記事:https://qiita.com/nimzo6689/items/aa3929ab64668c3830a1

よろしくお願いします。

0 likes

2Answer

PCのPowerShell ver.5からver.7に変更した

念のために申し上げておきますが、Windows PowerShellとPowerShellは現状別物です。

あなたの仰るver.7がPowerShellです。
基本的に共存しており、今回のように何かしらの問題が発生したときにWindows PowerShellに切り替わるか、ターミナルが起動しません。

今後の回答に影響してくるので区別はしっかりしてください。


本当にPowerShellをインストールし、Windowsを再起動しているならショートパスでPowerShellが立ち上がるはずです。
Winキー + R でpwshと入力でPowerShellが起動します。

PowerShellがインストールされているとVSCが自動検知するので、そもそも"terminal.integrated.profiles.windows"内にパスを書く必要がありません。
引数や欲しい環境変数などの理由が無いならビルドインプロファイルの"PowerShell"を使うべきです。

つまり

settings.json
{
    "terminal.integrated.defaultProfile.windows": "PowerShell",
}

とするだけで良いはずです。

これでも何か問題があるようなら上部メニューの「表示」→「問題」に何かあれば提示すると良いかと思います。


Profiles can be created using either a path or a source

:thinking:

1Like
"terminal.integrated.defaultProfile.windows": "PowerShell",

の最後のカンマはいらないと思います。
構文エラーになるかと
あと、設定変更した際はvscode再起動必要と思います。

0Like

Comments

  1. @hihoraaaaash

    Questioner

    回答ありがとうございます。
    ご指摘の通り変更して、再起動したのですがダメなようです。
    このコードだけを記載するのではなく、もともとあるコードに付け足す形になるのでしょうか?

  2. 一応の確認ですが、以下のインストールコマンドはすでに実行済みですよね?

    PS C:\work\Azure> winget install Microsoft.PowerShell

    その上で、PowerShell 7 が正しく使えるどうかは、以下のように確認できます
    (参考:https://learn.microsoft.com/ja-jp/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.5)

    PS C:\work\Azure> & "C:\Program Files\PowerShell\7\pwsh.exe"
    

    実行後にこのように表示されていればOKです:

    PS C:\work\Azure> $PSVersionTable.PSVersion
    
    Major  Minor  Patch  PreReleaseLabel BuildLabel
    -----  -----  -----  --------------- ----------
    7      5      0
    

    で、↑でちゃんと7系がインストール利用できる状態であることを確認したら、VSCode のターミナルを"恒久的"に PowerShell 7 にする以下を行ってみてください。(上記で7と表示されてもvscode再起動したら5系に戻ってしまうので。)

    ■対応方法
    恐らく以下のようなパスのsetting.jsonを使ってますよね?

    C:\Users\<ユーザー名>\AppData\Roaming\Code\User\settings.json
    

    この中に、以下の設定を追加または何もなければ新規記載してください:

    {
      "terminal.integrated.profiles.windows": {
        "PowerShell 7": {
          "path": "C:\\Program Files\\PowerShell\\7\\pwsh.exe"
        }
      },
      "terminal.integrated.defaultProfile.windows": "PowerShell 7"
    }
    

    ■ 作業後の確認
    $PSVersionTable.PSVersion コマンドの実行
    7.5.0 など、PowerShell 7 のバージョンが表示されていることを確認

    VSCode を一度完全に閉じて再起動します

    $PSVersionTable.PSVersion コマンドの実行
    7.5.0 など、PowerShell 7 のバージョンが表示されていることを確認

Your answer might help someone💌