🪟

WindowsのVSCode(ユーザーインストーラー版)で管理者権限でデバッグする

2024/01/30に公開

TL;DR

  • 起動コマンドに--user-data-dir="フォルダのパス"を付与して起動(管理者権限でVSCodeを起動)

内容

ユーザーインストーラー版でインストールした場合、ショートカットで「管理者としてプログラムを実行する」にチェックするだけでは不十分で、ユーザーデータの保存フォルダパスを明示的に指定する必要がある。
これについては以下の記事にあるLinuxと同等の効果を発揮する。

ただし、なぜこのオプションで管理者権限で実行できるようになるかという理由については、明確に仕様として記載されているドキュメントは見つけられなかった。
またフォルダはどこでも良いようだが全ては確認できないので、C直下などUsers以下でないほうが無難。

検証

検証用コード

test.py
from subprocess import Popen, PIPE

if __name__ == "__main__":
    stdout, stderr = Popen("BCDEdit", text=True, stdout=PIPE, stderr=PIPE).communicate()
    print(stdout)
  • 非管理者権限で実行した場合の実行結果
    ブート構成のデータ ストアを開けませんでした。
    アクセスが拒否されました。
    
  • 管理者権限で実行した場合の実行結果
    Windows ブート マネージャー
    --------------------------------
    identifier              {bootmgr}
    ・・・
    
    デバッグ状態

Discussion