Access Point

1
VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Теневая копия (shadow) пропадает панель языка

admin 06.03.2018

Суть проблемы

Пропадает языковая панель при подключении к пользователю для управления с запросом и без запроса

Патогенез (Без использования IgnoreRemoteKeyboardLayout)

  1. До того как клиент подключается к серверу у него в системе выбрана раскладка (Например РУС)
  2. Клиент по RDP подключается к серверу
  3. Администратор из RDP сессии в которой выбрана раскладка (Например ENG) подключается к пользователю через теневой сеанс для управления (с запросом или без запроса)
  4. После отключения администратора от теневого сеанса пользователя, у пользователя пропадает языковая панель и не переключатся язык.

 

  • Если раскладки пользователя и администратора совпадут на момент первого теневого сеанса то после отключения администратора от теневого сеанса управления, панель у пользователя не пропадет.
  • Если администратор повторно подключается с той же раскладкой что и была при первом подключении к пользователю то у пользователя языковая панель появится на время подключения администратора.
  • Если администратор повторно подключится к пользователю с раскладкой, которая была у пользователя на момент первого подключения администратора, у пользователя языковая панель не появится.

Решение в конце

close

 

Сама панель просто скрывается, так как остается только 1 язык и переключать там нечего, для нее это нормальное поведение. Т.е. проблема в том что 2-й язык который не активен у пользователя — удаляется.

После пропажи языковой панели включил - Индикатор ввода

 

Эффект от использования IgnoreRemoteKeyboardLayout

При использовании этого параметра с клиентских компьютеров перестает пробрасываться раскладка на сервер но все так же если раскладки подключающегося к теневой копии и пользователя к которому подключаются, разные на момент начала теневого сеанса, языковая панель пропадает после отключения теневой копии.

 

Протестировано на:

  • Windows Server 2012r2 rus+eng с обновлениями и без.
  • Windows Server 2012r2 eng+deu без обновлений.
  • Windows Server 2016 rus+eng с последними обновлениями

Настройки тестового сервера:

AD + Уд. раб столы и через политики прописано разрешение на управление без запросов, создан 1 пользователь домена.

Политика на сервере терминалов

Win srv 2012r2 eng + deu без обновлений systeminfo

C:\Windows\system32>systeminfo

Host Name: WIN-1H6JLAQD4JB
OS Name: Microsoft Windows Server 2012 R2 Standard
OS Version: 6.3.9600 N/A Build 9600
OS Manufacturer: Microsoft Corporation
OS Configuration: Primary Domain Controller
OS Build Type: Multiprocessor Free
Registered Owner: Windows User
Registered Organization:
Product ID: 00252-70000-00000-AA453
Original Install Date: 3/2/2018, 12:34:55 AM
System Boot Time: 3/2/2018, 1:31:36 AM
System Manufacturer: Microsoft Corporation
System Model: Virtual Machine
System Type: x64-based PC
Processor(s): 1 Processor(s) Installed.
[01]: Intel64 Family 6 Model 26 Stepping 5 GenuineInt
el ~3370 Mhz
BIOS Version: American Megatrends Inc. 090007 , 6/2/2017
Windows Directory: C:\Windows
System Directory: C:\Windows\system32
Boot Device: \Device\HarddiskVolume1
System Locale: en-us;English (United States)
Input Locale: de;German (Germany)
Time Zone: (UTC-08:00) Pacific Time (US & Canada)
Total Physical Memory: 2,096 MB
Available Physical Memory: 685 MB
Virtual Memory: Max Size: 3,248 MB
Virtual Memory: Available: 1,562 MB
Virtual Memory: In Use: 1,686 MB
Page File Location(s): C:\pagefile.sys
Domain: w12r2en.local
Logon Server: \\WIN-1H6JLAQD4JB
Hotfix(s): N/A
Network Card(s): 1 NIC(s) Installed.
[01]: Microsoft Hyper-V Network Adapter
Connection Name: Ethernet
DHCP Enabled: Yes
DHCP Server: 192.168.150.1
IP address(es)
[01]: 192.168.150.44
Hyper-V Requirements: A hypervisor has been detected. Features required for
Hyper-V will not be displayed.

Win srv 2012r2 rus + eng с обновами systeminfo

Имя узла: WIN-MB5MTGDKE3T
Название ОС: Microsoft Windows Server 2012 R2 Standard
Версия ОС: 6.3.9600 Н/Д построение 9600
Изготовитель ОС: Microsoft Corporation
Параметры ОС: Основной контроллер домена
Построение ОС: Multiprocessor Free
Зарегистрированный владелец: Пользователь Windows
Зарегистрированная организация:
Код продукта: 00254-10000-00000-AA364
Дата установки: 27.02.2018, 16:37:18
Время загрузки системы: 01.03.2018, 16:16:48
Изготовитель системы: Microsoft Corporation
Модель системы: Virtual Machine
Тип системы: x64-based PC
Процессор(ы): Число процессоров — 1.
[01]: Intel64 Family 6 Model 26 Stepping 5 Gen
uineIntel ~3370 МГц
Версия BIOS: Microsoft Corporation Hyper-V UEFI Release v2.
5, 22.08.2017
Папка Windows: C:\Windows
Системная папка: C:\Windows\system32
Устройство загрузки: \Device\HarddiskVolume2
Язык системы: ru;Русский
Язык ввода: ru;Русский
Часовой пояс: (UTC+03:00) Москва, Санкт-Петербург, Волгоград

Полный объем физической памяти: 2 563 МБ
Доступная физическая память: 918 МБ
Виртуальная память: Макс. размер: 3 715 МБ
Виртуальная память: Доступна: 1 955 МБ
Виртуальная память: Используется: 1 760 МБ
Расположение файла подкачки: C:\pagefile.sys
Домен: 12r2.local
Сервер входа в сеть: \\WIN-MB5MTGDKE3T
Исправление(я): Число установленных исправлений — 193.
[01]: KB4072650
[02]: KB2843630
[03]: KB2862152
[04]: KB2868626
[05]: KB2883200
[06]: KB2884846
[07]: KB2887595
[08]: KB2892074
[09]: KB2893294
[10]: KB2894029
[11]: KB2894179
[12]: KB2894856
[13]: KB2898514
[14]: KB2898742
[15]: KB2898871
[16]: KB2901101
[17]: KB2901128
[18]: KB2903939
[19]: KB2906956
[20]: KB2908174
[21]: KB2911106
[22]: KB2912390
[23]: KB2913152
[24]: KB2913270
[25]: KB2914218
[26]: KB2919355
[27]: KB2919394
[28]: KB2922229
[29]: KB2923528
[30]: KB2928680
[31]: KB2931366
[32]: KB2938066
[33]: KB2939087
[34]: KB2954879
[35]: KB2967917
[36]: KB2973201
[37]: KB2973351
[38]: KB2975061
[39]: KB2976897
[40]: KB2977765
[41]: KB2978041
[42]: KB2978126
[43]: KB2989930
[44]: KB3000850
[45]: KB3003057
[46]: KB3004361
[47]: KB3004365
[48]: KB3004545
[49]: KB3008242
[50]: KB3010788
[51]: KB3011780
[52]: KB3012702
[53]: KB3013172
[54]: KB3013410
[55]: KB3013538
[56]: KB3013769
[57]: KB3013791
[58]: KB3013816
[59]: KB3014442
[60]: KB3019978
[61]: KB3021674
[62]: KB3021910
[63]: KB3022777
[64]: KB3023222
[65]: KB3023266
[66]: KB3024751
[67]: KB3024755
[68]: KB3027209
[69]: KB3029603
[70]: KB3030377
[71]: KB3030947
[72]: KB3032663
[73]: KB3033446
[74]: KB3034348
[75]: KB3035126
[76]: KB3036612
[77]: KB3037579
[78]: KB3037924
[79]: KB3038002
[80]: KB3042058
[81]: KB3042085
[82]: KB3043812
[83]: KB3044374
[84]: KB3044673
[85]: KB3045634
[86]: KB3045685
[87]: KB3045717
[88]: KB3045719
[89]: KB3045755
[90]: KB3045992
[91]: KB3045999
[92]: KB3046017
[93]: KB3046737
[94]: KB3048043
[95]: KB3054169
[96]: KB3054203
[97]: KB3054256
[98]: KB3054464
[99]: KB3055323
[100]: KB3055343
[101]: KB3055642
[102]: KB3059317
[103]: KB3060681
[104]: KB3060793
[105]: KB3061512
[106]: KB3063843
[107]: KB3067505
[108]: KB3071756
[109]: KB3074228
[110]: KB3074548
[111]: KB3075220
[112]: KB3076895
[113]: KB3077715
[114]: KB3078405
[115]: KB3078676
[116]: KB3080042
[117]: KB3080149
[118]: KB3081320
[119]: KB3082089
[120]: KB3084135
[121]: KB3084905
[122]: KB3086255
[123]: KB3087041
[124]: KB3087137
[125]: KB3091297
[126]: KB3092601
[127]: KB3092627
[128]: KB3094486
[129]: KB3095701
[130]: KB3096411
[131]: KB3097997
[132]: KB3098779
[133]: KB3099834
[134]: KB3100473
[135]: KB3100956
[136]: KB3102429
[137]: KB3102939
[138]: KB3103616
[139]: KB3103696
[140]: KB3103709
[141]: KB3108381
[142]: KB3109103
[143]: KB3109976
[144]: KB3110329
[145]: KB3115224
[146]: KB3121261
[147]: KB3121461
[148]: KB3123245
[149]: KB3126033
[150]: KB3126041
[151]: KB3126434
[152]: KB3126587
[153]: KB3126593
[154]: KB3128650
[155]: KB3132080
[156]: KB3133043
[157]: KB3133690
[158]: KB3134179
[159]: KB3134815
[160]: KB3137728
[161]: KB3138602
[162]: KB3139164
[163]: KB3139398
[164]: KB3139914
[165]: KB3140219
[166]: KB3140234
[167]: KB3145384
[168]: KB3145432
[169]: KB3146604
[170]: KB3146723
[171]: KB3146751
[172]: KB3146978
[173]: KB3147071
[174]: KB3149157
[175]: KB3153704
[176]: KB3155784
[177]: KB3156059
[178]: KB3159398
[179]: KB3161949
[180]: KB3161958
[181]: KB3162343
[182]: KB3169704
[183]: KB3172614
[184]: KB3172729
[185]: KB3173424
[186]: KB3175024
[187]: KB3178539
[188]: KB3179574
[189]: KB4033369
[190]: KB4033390
[191]: KB4033428
[192]: KB4054854
[193]: KB4054519
Сетевые адаптеры: Число сетевых адаптеров — 1.
[01]: Сетевой адаптер Hyper-V (Майкрософт)
Имя подключения: Ethernet
DHCP включен: Да
DHCP-сервер: 192.168.150.1
IP-адрес
[01]: 192.168.150.45
Требования Hyper-V: Обнаружена низкоуровневая оболочка. Функции, н
еобходимые для Hyper-V, отображены не будут.

Win srv 2016 rus + eng с обновами systeminfo

Имя узла: WIN-T1U73IAU33T
Название ОС: Майкрософт Windows Server 2016 Datacenter
Версия ОС: 10.0.14393 Н/Д построение 14393
Изготовитель ОС: Microsoft Corporation
Параметры ОС: Основной контроллер домена
Построение ОС: Multiprocessor Free
Зарегистрированный владелец: Пользователь Windows
Зарегистрированная организация:
Код продукта: 00377-90000-00001-AA473
Дата установки: 23.02.2018, 18:57:18
Время загрузки системы: 02.03.2018, 12:28:54
Изготовитель системы: Microsoft Corporation
Модель системы: Virtual Machine
Тип системы: x64-based PC
Процессор(ы): Число процессоров — 1.
[01]: Intel64 Family 6 Model 26 Stepping 5 GenuineIntel ~3370 МГц
Версия BIOS: Microsoft Corporation Hyper-V UEFI Release v2.5, 22.08.2017
Папка Windows: C:\Windows
Системная папка: C:\Windows\system32
Устройство загрузки: \Device\HarddiskVolume2
Язык системы: ru;Русский
Язык ввода: ru;Русский
Часовой пояс: (UTC+03:00) Москва, Санкт-Петербург, Волгоград
Полный объем физической памяти: 3 099 МБ
Доступная физическая память: 865 МБ
Виртуальная память: Макс. размер: 3 483 МБ
Виртуальная память: Доступна: 1 000 МБ
Виртуальная память: Используется: 2 483 МБ
Расположение файла подкачки: C:\pagefile.sys
Домен: w16.local
Сервер входа в сеть: \\WIN-T1U73IAU33T
Исправление(я): Число установленных исправлений — 7.
[01]: KB3186568
[02]: KB3192137
[03]: KB3199986
[04]: KB4035631
[05]: KB4049065
[06]: KB4074595
[07]: KB4077525
Сетевые адаптеры: Число сетевых адаптеров — 1.
[01]: Microsoft Hyper-V Network Adapter
Имя подключения: Ethernet
DHCP включен: Да
DHCP-сервер: 192.168.150.1
IP-адрес
[01]: 192.168.150.35
Требования Hyper-V: Обнаружена низкоуровневая оболочка. Функции, необходимые для Hyper-V, отображены не будут.

 

Видео настройки тестового стенда.

Видео воспроизведения проблемы.

На Win 2012r2 ru без обновлений, Win 2012r2 en с 2 раскладками (ENG и DEU) и win. 2016 ru с обновлениями точно так же воспроизводится.

 

Решение:

Описание: Скрипт работает по факту события отключения от теневого сеанса, создает задание для пользователя и фоном выполняет добавление языков, после чего задание удаляется.

Установка

Все 3 файла по задумке находятся в папке C:\task\ если нужно в другой то меняете в файле 20507.ps1 и LB.vbs пути до нужного расположения. Тут все 3 файла в архиве

Файл 20507.ps1 (Получает SID, преобразует в имя, создает задание для имени, выполняет задание, удаляет задание)

$result = Get-WinEvent -FilterHashtable @{Logname="Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational"; ID="20507"} | select-object -first 1 | format-list -property UserId | Out-String
$sid1 = $result.Substring(13)
$sid1 = $sid1.TrimEnd()
$usid = New-Object System.Security.Principal.SecurityIdentifier($sid1)
$user = $usid.Translate([System.Security.Principal.NTAccount])
$taskname = -join ((65..90) + (97..122) | Get-Random -Count 10 | % {[char]$_})
schtasks.exe /create /RU $user /IT /TN $taskname /ST "14:30:00" /SC DAILY /SD "11/11/2014" /ED "11/11/2085" /TR "wscript C:\task\LB.vbs"
schtasks.exe /run /TN $taskname
Start-Sleep -Milliseconds 8000
schtasks.exe /Delete /TN $taskname /F

 

Файл LB.vbs (Что бы окно powershell-а не моргало у пользователя)

Dim objShell
Set objShell=CreateObject("WScript.Shell")
strExpression="C:\task\RdpSa.ps1"
strCMD="powershell -sta -noProfile -NonInteractive  -nologo -command " & Chr(34) &_
"&{" & strExpression &"}" & Chr(34) 
objShell.Run strCMD,0

 

Файл RdpSa.ps1 (Указываются раскладки, но можно и без него было сделать)

$OldList = Get-WinUserLanguageList
$OldList.Add("en-US")
$OldList.Add("ru-RU")
Set-WinUserLanguageList $OldList -Force

 

После того как файлы созданы, открывайте Просмотр событий и идите по пути — Журналы приложений и служб \ Microsoft\Windows\TerminalServices-RemoteConnectionManager\Operational там находите событие 20507, правой кнопкой по событию — Привязать задачу к событию.

На первом шаге (создать простую задачу) нажимаете Далее

На втором шаге (При записи определенного события)  нажимаете Далее

На третьем шаге (Выбрать действия для задачи) нажимаете Далее

На четвертом шаге (Запуск программы) выбираете файл 20507.ps1 и в поле Программа или сценарий перед путем до файла пишите powershell (должно получится powershell C:\task\20507.ps1)

Нажимаете Далее, на выскакивающем предупреждении нажимаете ДА

На пятом шаге (Сводка) Ставите галку на Открыть окно «Свойства»…, нажимаете Готово

В открывшемся окне свойств ставите галки — Выполнять для всех пользователей, выполнять с наивысшим приоритетом, скрытая задача, нажимаете сохранить — вводите пароль, на этом все.

 

Установка (Видео)

Видео было снято до внесения изменений в файл 20507.ps1, по этому там он называется 20507ru.ps1

close

 

Известные ошибки

Проблема:

Причина:

В ГПО конфиг.\ Админ шаблоны \ Система \ Не запускать указанные приложения windows добавлен powershell.exe

Для замены этого параметра можно использовать логон скрипт который будет проверять запуск 2-го экземпляра powershell.exe и убивать процесс.

https://community.spiceworks.com/topic/662836-powershell-how-to-get-two-process-ids-and-kill-one

 

P.S. Ошибке уже скоро 5 лет будет, у кого есть возможность, сделайте кейс в техподдержки, пусть исправят…

Comments (1)

  1. Спасибо добрый человек за интересное решение и готовый скрипт! Не первый месяц бьёмся с этой проблемой на терминальной ферме на базе 16 сервера. Пока обходились простым скриптом, который вручную запускали пользователи, либо заходом в св-ва языка и нажатием кнопки «вверх» — «вниз». Привязать это действие к событию не сообразили 🙂

    Ответить

Leave a Comment

Login to your account

Can't remember your Password ?

Register for this site!