実現したいこと
- すべてのユーザーが利用できるvscodeと拡張機能のインストール。
- 対象OSはwindows10 / windows11
- 利用者は個別に拡張機能をインストールする権限はない。
- あくまで教育機関などに向けた大量の環境セットアップとして。
流れ
- codeをシステムインストールする。
- 拡張機能をc:\users\publicの配下へインストールする。
- コンテキストメニューから起動する際のふるまいも変える。
- 1ユーザから上記の設定を行ったら、すべてのユーザーの設定が完了してほしい
システムインストーラのダウンロード
インストール(コマンド)
.\VSCodeSetup-x64-1.95.3.exe /SILENT /NORESTART /NOCANCEL /MERGETASKS="!runcode,addcontextmenufiles,addcontextmenufolders,associatewithfiles,addtopath"
コマンドの説明
-
/SILENT : GUIなしでインストールする。
-
/NORESTART : インストール後にシステムを再起動しない。
-
/NOCANCEL : インストール中にキャンセルボタンを押せないようにする。
-
/MERGETASKS : インストール中に有効または無効にするタスクを指定します。
- !runcode: インストール後にVSCodeを自動で起動しない。
- addcontextmenufiles: ファイルの右クリックメニューにVSCodeで開くオプションを追加。
- addcontextmenufolders: フォルダの右クリックメニューにVSCodeで開くオプションを追加。
- associatewithfiles: ファイルの関連付けを有効化。
- addtopath: システムのPATHにVSCodeを追加。
各種拡張機能をインストール
- 拡張機能をすべてのユーザーから利用できるように、パブリックフォルダにインストールする
- & bin\codeのパス --extensions-dir 拡張機能のインストール先 --install-extension インストールする拡張機能
& "C:\Program Files\Microsoft VS Code\bin\code" --extensions-dir "c:\users\public\code\extensions" --install-extension ms-python.python
ちなみに、拡張機能をインストールする際の正式名称は以下のように調べる。
コンテキストメニューからcodeを利用する際のふるまいを変える
-
レジストリの変更を行います。
-
フォルダのバックグラウンドを右クリックしたときのふるまい
Set-ItemProperty -Path "Registry::HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command" -Name "(default)" -Value '"C:\Program Files\Microsoft VS Code\bin\code" "%V" --extensions-dir "c:\users\public\code\extensions"'
- フォルダを右クリックしたときのふるまい
Set-ItemProperty -Path "Registry::HKEY_CLASSES_ROOT\Directory\shell\VSCode\command" -Name "(default)" -Value '"C:\Program Files\Microsoft VS Code\bin\code" "%V" --extensions-dir "c:\users\public\code\extensions"'
- その他
Set-ItemProperty -Path "Registry::HKEY_CLASSES_ROOT\*\shell\VSCode\command" -Name "(default)" -Value '"C:\Program Files\Microsoft VS Code\bin\code" "%V" --extensions-dir "c:\users\public\code\extensions"'
Vscodeを起動する
- 適宜batやショートカットにしてそこからしか起動できない運用にする必要がある。
& "C:\Program Files\Microsoft VS Code\bin\code" --extensions-dir "c:\users\public\code\extensions"