Hi,
thank you very much for all the infos! ![]()
I managed to solve my problem with a bit of scripting (I tried with some test-users and everything works fine on multiple machines) and here below I explain how.
END RESULT:
-
The IDE is deployed locally on every machine, including the core boards
arduino:avralready downloaded.
-
The user (student) can download new boards on the local machine: this will probably not be needed in our school, where only Arduino UNO/Mega are used, but it could be useful in the future.

-
The user (student) can download new libraries on his (network) profile: this is desired, since every student develops personal projects that require specific libraries, so every student already has "his" libraries installed on every PC he will log on.

STEP 1 - Software DEPLOYMENT/INSTALLATION:
- Software Installation for all users:
START /WAIT "" MSIEXEC /i "arduino-ide_2.0.0-rc5_Windows_64bit.msi" /qn ALLUSERS=1
- I create a hidden folder named
AppdatainsideC:\Program Files\arduino-ide, which can be written by everyone (it shouldn't create any security problem).
This folder contains a "neutral"arduino-cli.yamlconfiguration file, whith the lines:
directories:
data: C:\Program Files\arduino-ide\Appdata\Local\Arduino15
downloads: C:\Program Files\arduino-ide\Appdata\Local\Arduino15\staging
user: %USERPROFILE%\Documents\Arduino
The folder (with configuration file) is copied/created with the commands:
XCOPY "Appdata" "C:\Program Files\arduino-ide" /I/Q/H/R/K/Y/S/E
ICACLS "C:\Program Files\arduino-ide\Appdata" /t /grant Everyone:(OI)(CI)M
ATTRIB +h "C:\Program Files\arduino-ide\Appdata"
- I finally install the core boards using this configuration file:
SET "PATH_ARDUINO_CLI=C:\Program Files\arduino-ide\resources\app\node_modules\arduino-ide-extension\build\arduino-cli.exe"
SET "PATH_ARDUINO_CLI_CONFIG=C:\Program Files\arduino-ide\Appdata\arduino-cli.yaml"
START /WAIT "" "%PATH_ARDUINO_CLI%" core install arduino:avr --config-file "%PATH_ARDUINO_CLI_CONFIG%"
STEP 2 - User Configuration WHILE STARTING THE IDE:
Every user starts now the IDE not using the created icon, but instead using a given Shortcut that links to the following BATCH file (with the Arduino Icon
):
@ECHO OFF
SET "CONFIG_NAME=arduino-cli.yaml"
SET "ARDUINO_CLI=C:\Program Files\arduino-ide\resources\app\node_modules\arduino-ide-extension\build\arduino-cli.exe"
SET "APPDATALOCAL_DIR=C:\Program Files\arduino-ide\Appdata"
SET "CONFIG_USER_DIR=%userprofile%\.arduinoIDE"
SET "CONFIG_USER_FILE=%CONFIG_USER_DIR%\%CONFIG_NAME%"
SET "CONFIG_BLANK_FILE=%APPDATALOCAL_DIR%\%CONFIG_NAME%"
IF NOT EXIST "%CONFIG_USER_DIR%" MD "%CONFIG_USER_DIR%"
IF NOT EXIST "%CONFIG_USER_FILE%" XCOPY "%CONFIG_BLANK_FILE%" "%CONFIG_USER_DIR%" /I/Q/H/R/K/Y/S/E
ATTRIB +h "%CONFIG_USER_DIR%"
"%ARDUINO_CLI%" config set directories.data "%APPDATALOCAL_DIR%\Local\Arduino15" --config-file "%CONFIG_USER_FILE%"
"%ARDUINO_CLI%" config set directories.downloads "%APPDATALOCAL_DIR%\Local\Arduino15\staging" --config-file "%CONFIG_USER_FILE%"
START "" "C:\Program Files\arduino-ide\Arduino IDE.exe"
EXIT /B 0
This solves my "catch-22" problem: at every start of the IDE, I ensure that the current user has the correct folders set (except the sketch/library one, which defaults to %USERPROFILE%\Documents\Arduino at the first start but can then be freely modified).
So long, everything seems to work just as intended, so let's hope it will stay this way ![]()
Thank you again, cheers!
Mattia