A virtual desktop management server computing system (100, 220), comprising: a virtual desktop management unit communicatively coupled to a centralized datastore comprising at least one virtual disk as part of a virtual machine associated with an identified user; characterised in that the server computing system (100, 220) further comprises: an API handler unit configured to receive and respond to a client application request from a user of a client device for user data that has been stored on the virtual disk as part of a virtual machine associated with the identified user, and to validate the user of the client device as the identified user authorized to make the request, wherein the virtual disk is stored remote from the client device in the centralized datastore which is communicatively coupled to the server computing system (100, 220); and a content abstraction layer component configured, in response to a request from the API handler unit, to connect to a control virtual machine that has access to the virtual disk associated with the requested user data and to cause the control virtual machine to mount the virtual disk when the virtual disk is not already accessible to the control virtual machine through a running virtual desktop associated with the identified user, thereby enabling the content abstraction layer component to obtain the requested data from the virtual disk and return the requested data to the API handler unit to respond to the client application request of the client device. a virtual desktop management unit communicatively coupled to a centralized datastore comprising at least one virtual disk as part of a virtual machine associated with an identified user; characterised in that the server computing system (100, 220) further comprises: an API handler unit configured to receive and respond to a client application request from a user of a client device for user data that has been stored on the virtual disk as part of a virtual machine associated with the identified user, and to validate the user of the client device as the identified user authorized to make the request, wherein the virtual disk is stored remote from the client device in the centralized datastore which is communicatively coupled to the server computing system (100, 220); and a content abstraction layer component configured, in response to a request from the API handler unit, to connect to a control virtual machine that has access to the virtual disk associated with the requested user data and to cause the control virtual machine to mount the virtual disk when the virtual disk is not already accessible to the control virtual machine through a running virtual desktop associated with the identified user, thereby enabling the content abstraction layer component to obtain the requested data from the virtual disk and return the requested data to the API handler unit to respond to the client application request of the client device. an API handler unit configured to receive and respond to a client application request from a user of a client device for user data that has been stored on the virtual disk as part of a virtual machine associated with the identified user, and to validate the user of the client device as the identified user authorized to make the request, wherein the virtual disk is stored remote from the client device in the centralized datastore which is communicatively coupled to the server computing system (100, 220); and a content abstraction layer component configured, in response to a request from the API handler unit, to connect to a control virtual machine that has access to the virtual disk associated with the requested user data and to cause the control virtual machine to mount the virtual disk when the virtual disk is not already accessible to the control virtual machine through a running virtual desktop associated with the identified user, thereby enabling the content abstraction layer component to obtain the requested data from the virtual disk and return the requested data to the API handler unit to respond to the client application request of the client device.