Я пришёл к любопытным выводам.
Тестировал скрипт http://uiautomation.codeplex.com/downloads/get/446786 -> UIARunner\testTMXwithAutoGeneration_5.ps1
Вообще говоря, скрипт этот - плохой тест. Он тысячу раз делает простые действия в калькуляторе. Надо что-то более сюитоподобное будет попробовать.
Смотрел в четырёх комбинациях:
powershell.exe + locked
powershell.exe elevated + locked
powershell.exe + locked + screensaver
powershell.exe elevated + locked + screensaver
Во всех четырёх случаях часть тестов не нашла контролы. После несколькосекундного отмерзания, все тесты пошли дальше.
Однако, тот же скрипт на UIARunner.exe ( http://uiautomation.codeplex.com/downloads/get/446783 ) продолжил работу как ни в чём ни бывало! Приложение скомпилено с параметром highestAvailable, поэтому потом буду проверять, что же это за фокус: или повышенные привилегии спасают от скринсейвера, или баг в UIARunner.
Скринсейвер при залогоненном юзере стартует с привилегиями юзера: http://msdn.microsoft.com/en-us/library/cc144066(v=vs.85).aspx
"The security context of the screen saver is dependent on whether a user is interactively logged on. If a user is interactively logged on when the screen saver is invoked, the screen saver runs in the security context of the interactive user. If no user is logged on, the security context of the screen saver is dependent on the version of Windows being used."
Однако, это не объясняет, почему тесты на элевейченном пауэршелле зафейлились.
В итоге, получилось вот что: UIARunner замедляется, скорость падает до 1 trps, но тесты идут. На примере этого скрипта: было 98 успешных и 14 фейленых, залочил машинку, разлочил - 160 успешных и двадцать с чем-то фейленых (там соотношение 12 пассед на 2 файлед), т.е. соотношение соблюдено, фейлы под расчёт.
Я из интереса поиграюсь на других скриптах. Хотя особого смысла нет - достаточно же отключить скринсейвер (руками или через политики), и ВСЁ будет работать.