1. In a client-server architecture including at least one client machine in communication with a plurality of servers over a network, a method for provisioning a suitable operating system environment to a client machine in the network based on hardware elements of the client machine, the method comprising: receiving, from at least one installation server, a first software module at the client machine, wherein the first software module is compatible with a processor type of the client machine; in response to the client machine receiving the first software module, a processor of the client machine executing the first software module, which performs the functions of: scanning the client machine to obtain a list of hardware elements on the client machine; and transmitting the list of hardware elements on the client machine to the at least one installation server; the client machine receiving, from the installation server, a suitable Operating System Environment (OSE) for the client machine, wherein the suitable OSE includes an operating system and device drivers for each hardware element in the list of hardware elements on the client machine, wherein the operating system and device drivers for each hardware element are packaged into the OSE at the at least one installation server; and deploying the suitable OSE on the client machine.