All computers, and an additional server, if used, should be on the same LAN to make things easier. To make life easier, you should either mount certain directories of the clients from a central location, or use a remote interface, such as SSH or VNC. Else, you'll have to apply each setting 40 times.
The easiest and safest way would be to use another computer as a print server, which itself connects to all required print servers. By doing so, you can change the printer configuration on one host only. If you can't manage to get one, you could instead use one of the 40 workstations as a server additionally.
Linux uses the Common Unix Printing System CUPS. It's by default installed on the desktop version of Ubuntu, and you'll have the option to install it on the server edition on installation time. If you already installed the server, you can install CUPS with the command
sudo apt-get install cups
By default, the CUPS server only works when accessed locally. To change that, open the file
/etc/cups/cupsd.conf and replace the loopback entry by one referencing the hostname, i.e. replace
You can get the hostname with the
hostname command. If the server has a firewall (I'll assume ufw in the following), you may have to open port 631 to the outside:
sudo ufw allow cups
Also, enable publishing the printers on the network:
To apply these changes, restart CUPS:
sudo service cups restart
Now, you can use set up all printers via the server's desktop (if it has one) or the CUPS interface at
http://<ServerIP>:631/. When asked for authentication on the web interface, use your root or admin user credentials.
If you have network capable printers, there are chances that CUPS will find them on its own, and all you need to do is to add them to the printer list in CUPS. If some printers aren't found, you should be able to use their IP address to connect to them. When installing a printer, make sure that CUPS will publish them on the server.
If your printers aren't network capable, and only support e.g. USB, attach them to the print server and install them there. Again make sure that the printers are published by CUPS.
To tell the clients that there is a print server, open or create the file
/etc/cups/client.conf on each of them.
It would be much easier to mount certain directories from a NAS server (maybe the one that runs the CUPS server), so as to keep certain configuration centralized, but that would go beyond the scope of this answer.
In each client.conf, add the following line, replacing ServerIP by its actual IP, and ensure the server got a static IP (in the Router's settings).
Now, you have to restart CUPS on the client systems, using the same command as described above.
In the clients's printer settings, or CUPS web interface, add the printers from the CUPS server.
To prevent a user from mounting and unmounting drives, remove him from the
userdel <username> plugdev
If the user is currently logged in, this may not apply immediately; a relog may be required.