Этот параметр хранится в папке HKEY_CURRENT_USER\Control Panel\Desktop\UserPreferencesMask. Само значение реестра является двоичным значением, представляющим битовую маску с различными настройками.
Его формат задокументирован здесь
К сожалению, этот документ немного устарел и не содержит информации об этом конкретном параметре. Экспериментируя с этим значением, я обнаружил, что значения сохраняются в бите 32. Когда этот бит включен, вход переключается для каждого приложения отдельно.
Example of HKEY_CURRENT_USER\Control Panel\Desktop\UserPreferencesMask with setting on:
9e 1e 07 80 92 00 00 00
With setting off:
9e 1e 07 80 12 00 00 00
Вот пример сценария Powershell, чтобы включить его:
$prefMask = (Get-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name 'UserPreferencesMask').UserPreferencesMask
if (($prefMask[4] -band 0x80) -eq 0) {
$prefMask[4] = ($prefMask[4] -bor 0x80)
New-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name 'UserPreferencesMask' -Value $prefMask -PropertyType ([Microsoft.Win32.RegistryValueKind]::Binary) -Force | Out-Null
}
Был протестирован на множестве машин win8.1 (как x86, так и x64) и, похоже, работает как положено.
Обратите внимание, что настройка вступает в силу немедленно, но отображается неправильно в диалоге настроек языковой панели. Таким образом, вам нужно выйти и снова войти в систему для настройки панели, чтобы получить изменения.