For first one you can either install Subscription plugin and set it to automatically accept subscription requests (in Admin Console). Or you can put all users into groups and enable sharing in contact list for these groups. This way they will automatically appear in Spark and there won’t be need to manually add users. That is if you are using Openfire as your server.
There is no complete solution for second one. All settings are stored in C:\Users\username\AppData\Roaming\Spark\spark.properties file (there are a few more saving layout and groups expand/collapse state, but for the most part in this file). You can set up one Spark client as you want, save that file, remove login information and then push it with some script/GPO to all users. So they would only have to put login information in. See this guide for more information (second part) https://discourse.igniterealtime.org/t/unattended-spark-installation-via-shutdown-script-gpo
There is no bullet proof way to prevent users to change settings though. You can control some with Client Control plugin for Openfire. It mostly hides some menus. But a user can always find spark.properties files and change it manually. There is also a limited set of options that can be changed in default.properties file inside spark.jar, but then you will have to modify and distribute it every time you want to install new version of Spark.