
This article talks about the new functionality of
Parallels Desktop 12 , which allows you to control the installation of updates and the maintenance of Windows 10. Everyone remembers 1995, when Windows acquired the desktop with icons, taskbar, and the Start menu. For some reason, far from everyone remembers the more significant 1998 year - and it was then that the Update Center appeared in Windows. Now users have always had the most current and secure version of the operating system on their computers.
The speed of Internet access was such that you did not clear things up, so at first, through the Windows Update website, add-ons and new technologies came to user computers only for the Windows operating system itself. Then security fixes for other applications started shipping. The more updates offered, the more files needed to be downloaded.

')
All versions of Windows prior to Windows 8, inclusive, allowed to choose which updates will be installed on this computer.

In the current version of Windows 10, there is no choice - the user can refuse to update other Microsoft products other than the operating system, postpone updates for several days and ask the system not to install updates without his knowledge. But even updating the operating system alone in our time is far from a pound of raisins.

The system is updated literally all the time. Every day there are new signatures for the built-in antivirus, updates for Windows components and whole new versions, such as Windows 10 Anniversary Update. On the one hand, the functionality of a Windows update that is transparent to the user, by definition, should be convenient if this process makes life easier for the user, rather than distracting him. On the other hand, there are users who are very unhappy with Windows Update. Look at popular searches in the search engine.

Some fundamentally do not like the fact that the system is constantly doing something without their knowledge, but most users experience discomfort for significantly more prosaic reasons - downloading and installing updates absorbs the traffic and computer resources. On a PC, as a rule, this happens when the computer is not in use, and users will find out about the next update, after hearing the noise of the hard disk or the fan of the abandoned computer, or seeing something that seems to be an unprovoked suggestion to reboot.
The Windows maintenance mechanism that works when the system is idle has appeared in Windows 8. It controls the frequency of starting most tasks from the scheduler, such as collecting various statistics, sending telemetry, defragmentation, anti-virus control sessions, etc.
What about the Mac?
The Windows 10 virtual machine on the Mac “lives” somewhat differently, and the Windows update script in it is different from the usual PC script. The main difference is that it does not work exclusively.
Therefore, two unpleasant scenarios often arise:1) While the virtual machine is running in the background, the user, as usual, works with the main system or another virtual machine. The problem is that Windows in the first virtual machine does not know that the computer is used for other tasks, and begins to download and install updates, as well as run other tasks that must be performed while idle.
2) The virtual machine is started for the first time after a long break. And first of all, it starts looking for operating system updates on the Internet and launching missed tasks from the task scheduler. The user is puzzled: he simply started Windows in order to disintegrate the “kerchief” according to the old memory or pass through the minefield, and the system shamelessly slows down!

What does this lead to? Many users who are working on a PC would not have noticed anything, complaining that the Windows virtual machine on the Mac constantly installs something, reboots the system, corrupts some settings, etc. In actual fact, cases of non-performance of Windows after installing updates are known, but, of course, not on a catastrophic scale.
The main problem lies in the fact that the Windows virtual machine running in the background believes that there is no one at the computer and takes on too much - it starts installing updates, defragmenting disks, etc. This creates a serious performance problem, increasing the load on disk and network — especially if there are several virtual machines. And all because Windows Update downloads hundreds of megabytes from the Internet every month, and every day it also downloads some updates, antiviruses for programs. Computer performance decreases, it suddenly starts to make noise, heat up and quickly use up battery resources. Negative user experience, as they say, is inevitable.
It must be said that in the corporate environment, where the updating and maintenance of computer systems is put on stream, these problems are solved more easily. If your company uses, for example, Windows 10 Enterprise and Windows Server Update Services, then even in Windows 10 you can configure the execution of all update, maintenance and reboot operations on a schedule. But not all of our users work in corporate networks.
What did we do?
After studying the problem, we made the inevitable conclusion - the virtual machine should be taught to correctly understand the state of the host computer (host). We also decided to implement the traditional mechanism for launching maintenance procedures on a schedule, but without solving the main problem, this would be a half-measure.
Therefore, the main thing that we have done is that we have taught our Parallels Desktop system to transfer idle state from a host to a virtual machine. And if on the Mac there is input from the keyboard, mouse, etc., then the Windows virtual machine finds out about it and does not go into an idle state.
The easiest way to do this would be to simulate device input from within the virtual machine — so appreciate that we chose the less invasive, documented method SetThreadExecutionState (ES_DISPLAY_REQUIRED). The function clears the display idle timer, so if you ever write a video player for Windows, this call will definitely come in handy.
Of course, we have not forgotten about the option to manage Windows update and maintenance on a schedule. Since no one on the market has yet implemented the correct way to disable automatic updates for Windows 10, we did it ourselves. Parallels Desktop temporarily disables the maintenance mechanism for scheduled tasks of the Update Center. The settings interface of the virtual machine with Windows 10, we added the tab "Maintenance", which allows you to configure the schedule for updates and maintenance of Windows. Each virtual machine can be configured individually. Thus, our functionality temporarily disables the maintenance and updating tasks of Windows, the Windows Store program, Microsoft Office, the built-in antivirus, and starts them only at the time that the user has assigned in the virtual machine settings. And now the virtual machine only slows down when it should do so on a schedule.
You can schedule maintenance periods at night or on weekends. This is a more convenient solution than the version implemented in Windows 10. In our version, all Windows maintenance tasks — updates, antivirus checks, defragmentation, telemetry collection, and so on — are performed in one session in a fairly short amount of time. Tasks are completed, the computer restarts, if necessary, and everything is ready - the virtual machine is updated and will not interfere with your work.
Here you can remember that in corporate networks these problems have already been resolved, which means that our enterprise IT administrators seem to have no need for our functionality. In fact, any complex administrative task can and should have more than one good solution, and since we have included our functionality in Parallels Desktop, this allows administrators to solve this problem in another way - through the massive introduction of Parallels Desktop with virtual machines, pre-configured to optimize system upgrades and maintenance.
Or maybe completely disable it?
There are users - there are quite a lot of them, especially among non-professional users - who would not mind permanently disabling updates to Windows 10, leaving perhaps the possibility of updating the antivirus. Let's be honest - we are against.

Yes, in the case of the Windows 10 operating system, Microsoft has shown itself, so to speak, from positions of strength, but there is a reason for such a decision. Updates are needed both in terms of security, and in terms of the relevance of technology, and in terms of the performance of software components. If twenty years ago it was more or less indifferent, you work with the Windows version released this year, a year ago or five years ago, now every year in the world of technology there is a huge leap. Even a browser, released just a year ago, can let you down when working with new websites, and the antivirus and network security system that has not been updated since last year will become a hotbed of viruses and a “spyware find.”
Outsider tips
The most important thing in the new functionality of Parallels Desktop 12 for Mac that we have implemented in terms of updating Windows is the possibility of personalizing it. It is important for us that users know about it and can enable it. By default, we do not run it, because this functionality is not in the standard Windows. In addition, if we enable it by default, we will have to offer users a certain non-alternative mode of its operation. It seems to us that this is wrong.
Thus, at the moment, users who need to optimize the update and maintenance of the Windows virtual machine include and configure it themselves. Statistics show that about 20% of our users do this - one can assume that these are the same 20% of professional users that can be identified from any community.

Perhaps in the future we will come up with an adaptive algorithm that will not require manual adjustment of the maintenance time, and then it will be possible to enable this functionality automatically. For those who want to set up their virtual machines, but do not know at what time, we can suggest to start by trying daily maintenance at 24:00 and see what will come of it - very soon you will find the optimal mode for your case.