depending on the size of the environment and the money you're able to spend you could use Microsoft SCCM – it's made especially for that. For slightly smaller environments Scriptrunner could be worth to take look at it.