Redan om man har ett nätverk med några få klienter som man är ansvarig för att uppdatera och installera, så blir det snabbt ganska påtagligt arbete om man skall göra allt manuellt vid varje dator.
Om man är i en ren Windowsmiljö så finns det lösningar för detta från Microsoft som fungerar riktigt bra, men om man vill jobba med blandade miljöer och öppen källkod, då finns det också alternativ man kan välja bland.
Jag är nog mest en nyfiken nybörjare, men jag kan ändå tipsa om ett program som jag upplever som väldigt kraftfullt i sammanhanget nämligen FOG Server.

Detta är en server som enkelt installeras ovanpå en linuxserver och ger möjlighet att hantera nätverksboot, eller PXE-boot för klienter på nätverket.
Man kan med verktyget skapa diskavbildningar och ”deployera” dessa till klienter på nätverket snabbt och enkelt.
Om man nu har ett mindre antal typer av klienter så kan man göra färdiga installationer på varje typ och sedan skapa avbildningar av dessa på servern. Alla övriga klienter av samma typ kan sedan få samma avbildning utskickad via servern. På detta sätt behöver fullständiga installationer inte göras mer än en gång.
Jag kan för lite om finesserna så jag måste ändå göra lite handpåläggning på klienterna när avbildningen är ”deployerad”. Ge datorn ett nytt namn, ansluta till domänen och liknande. Jag använder bara program med öppen källkod så jag behöver däremot inte bekymra mig om licenser, men om man exempelvis använder MS Office eller andra proprietära mjukvaror som måste licensieras individuellt, så blir det också ett tilläggsjobb. Om det inte går att ”skripta” detta på något vis genom FOG.
Det går ganska enkelt att hålla en ”master” dator uppdaterad kontinuerligt som man skapar uppdaterade avbildningar av vid behov. Dessa kan man sedan deployera till klienter när det börjar bli dags för mera omfattande uppgraderingar.
Den metod jag beskriver här kanske bäst passar för uppgraderingar mera sällan, men det kan som sagt finnas betydligt flera finesser i mjukvaran än vad jag satt mig in i.
Något som jag inte provat i praktiken är att skapa mina master installationer på virtuella datorer. Dessa är i praktiken hårdvaruneutrala och kan i många fall fungera som avbildning för flera typer av klienter. Man får då se till att eventuella hårdvaruspecifika drivrutiner (om dessa behövs) läggs till efter deployeringen.
Det är bra att ha en liten image att utgå från, för att sedan genom skript konfigurera maskinen efter önskemål.
Här kan jag rekommendera FAI som en alternativ till FOG. Där har man klasser av maskiner, och varje klass kan bestämma vilka installationsskript som skall köra.
Men oavsett så behöver man göra inställningar i efterhand, som du skriver.
Där finns flera alternativ såsom SALT, CFEngine, Chef och några fler konfigurationsspråk som man kan använda för att göra det sista som du nämner, nämligen att installera/konfigurera/uppdatera befintlig programvara.