Edit: Hello serverfault, they didn't like my question on programmers and migrated it here.
In short my questions is: How do you (administrators) prefer to control settings for third party, off the shelf, desktop software?
My application needs a server name and a database name. I also have some offline data storage that is occasionally redirected from the default location in My Documents.
Right now users need to open the my software and type in these values. I would like to provide administrators with a way to automatically set these for users while still letting users self configure in smaller organisations.
I have a desktop software application that stores its configuration information in a file located in the user's AppData folder. Defaults are created by the application if the configuration file does not exist. Some of the settings like registration codes and server/database name can't be set by default.
I'm looking for methods to allow and IT department to push out default settings to my application. Right now I am considering having my application read two configuration files. One that would be in a fixed location copied by the administrator. This would be manually added (or probably pushed out by some other tool) to either the install directory or All Users or other public location. Any settings in that file would override the per user configuration settings.
I know that other applications have different ways for administrators to control per user settings using SMS or GPO. But not being an administrator myself I have never used any of those tools.
Are there any best practices for allowing administrators to override default settings for desktop software?
I need this two work in two different situations. One is laptop users who are connected to the network when software is installed but often disconnected when running the software - one user per computer. The other is Citrix based systems where clients are always connected but multiple users per computer. Some of the settings are global - i.e. the server name, while others are user specific. Things like redirecting the default save location to a per user network share.