The goal of this post is to help you understand some of the rationale as to why certain settings can or cannot be customized programmatically by OEMs or Enterprise IT in Windows 10. Note that we do review what mechanisms exist for customization and make improvements, so the specific limitations mentioned here may not be current. However, the overall rationale still applies to many aspects.
One of Microsoft’s core priorities is to create more personal computing. One part of this includes respecting user preferences and not allowing 3rd parties to interfere with some user settings such as whether their camera can be turned on by an Universal App or whether software can install and add websites to your Internet favourites automatically. While there are obvious privacy implications with this (such as the camera example), there is also the expectation that users will be given a choice when these changes are made so they can choose what is right for them.
We’ve been battling this problem for some time, and have made some decisions previously such as not allowing programmatic access to the Windows XP Start Menu pins which were designed to prevent applications from abusing this where they assume what the preferences of the user are and decide to set themselves front-and-centre.
Windows 10 has more user preferences and areas than ever before – there are pins, Start tiles, jump lists, and Quick Access – just to name a few. All of these do not have programmatic access by design. That said, for some of these (eg, Start Layout) we do provide enterprise IT controls to bulk add these - but there is no item-by-item programmatic access. This has already had a great effect in preventing the cluttering of user controlled areas, such as the task bar.
In addition, there are other settings such as search provider user preferences which have been a browser specific setting historically, but is becoming more essential to the operating system as Windows evolves, specifically with web search and Cortana. Search provider preference is another of these user settings to which we limit programmatic access due to the setting being abused by search engines as part of browser install procedures or bundled with other software. Also, some malware uses this approach to redirect users to ‘phishing’ versions of popular search engines.
The approach here (with respect to search engine preferences) is a little different though. In Windows 10, 1511 and onwards, we don't allow for unattended programmatic access to change the search provider. When an application or script changes the setting, the user will be prompted within the browser to accept the change. If the user takes no action (ie, doesn't click accept), the change will be reversed. This means that you can theoretically set this (so can applications) but the user will need to accept the change.
While this is designed to protect the user, I can appreciate this can be challenging for situations where you would prefer to automatically dictate the default for all of your users. Unfortunately this is not possible today without user intervention.
As a workaround for Enterprise IT, we recommend that you create a guide that instructs users on how to select their search engine preferences. Alternatively, you can set the user’s search choice, and instructing the user to allow the change. Just remember that for the user to select the option in something like Edge, they need to have visit the other search engine's page first.