Текущие требования: Есть NLB
-кластер из серверов базирующихся на Windows Server 2008 R2 Standard & Server 2012 R2 Standard
с применением роли терминального сервера. Им пользуются сотрудники из регионов, те что за МКАД(ом). А что предполагается из терминального сервера – это работа клиентом 1С
с базой данных.
Так вот при работе клиентом 1С
у многих людей, статистику у кого именно наблюдаются проблемы с кэшем собирать – это уже перебор. И вот исходя из этой проблемы, я вызвался решить/доработать текущую GPO
–политику (Очистка кэша 1С) ну и разобраться в данном вопросе. Просто я когда работал Руководителем IT в Авто бизнесе, уже делал что-то похожее, но это была не GPO
, а статическое решение, см. заметку:
Итак, пользователь подключился к NLB
-кластеру и его перекинуло на свободный терминальный сервер, далее ему нужно чтобы запустилось окно 1С
с возможность выбора баз, а не полноценный рабочий стол, делается это через редактирование вкладки «Среда
» свойств доменной учетной записи. Я реализовал все это в рамках этой же GPO
.
Шаг №1:
Создаю GPO
на OU
в который вынесены все пользователи с разбивкой по OU
–сокращенное имя региона, т.е. структура получается:
CN=User1,OU=Регион1,OU=Region,DC=polygon,dc=local
Итого: GPO: 1C_Cache on Region
Фильтр безопасности: Authentication Users
Вкладка «Делегирование»
Authenticated Users: Чтение
Шаг №2: Создаю командный файл через который и будет производиться запуск скрипта, т.е. скрипт в скрипте:
\\srv-dc.polygon.local\netlogon\cache_new.bat
@echo off @powershell -WindowStyle Hidden -command "\\srv-dc\netlogon\cache_new.ps1" @"C:\Program Files (x86)\1cv8\common\1cestart.exe" ENTERPRISE /AppAutoCheckMode /DisableStartupMessages /RunModeOrdinaryApplication
Создаю скрипт очистки кэша 1С:
\\srv-dc\netlogon\cache_new.ps1
Get-childitem -path "$env:USERPROFILE\AppData\Local\1C\1Cv8\*","$env:USERPROFILE\AppData\Roaming\1C\1Cv8\*" -recurse | Where {$_.Name -as [guid]} | Remove-Item -Force -Recurse | Unblock-File
В профиле пользователя работающего с 1С
при подключении к базе когда появляется окно авторизации формируется GUID
каталог, вот этот каталог после перед работой в 1С и нужно удалять.
Шаг №3: Открываю и редактирую созданную в Шаг №1 групповую политику:
GPO: 1C Cache – Конфигурация пользователя – Политики – Административные шаблоны – Компоненты Windows – Службы терминалов – Сервер терминалов – Среда удаленных сеансов – Запускать программу при подключении: включена
Путь к программе и имя файла:
\\srd-dc.polygon\netlogon\cache_new.bat
После нажимаю «Применить
» – «ОК
» и закрываю окно «Редактор управления групповыми политиками
».
На заметку: От 15.07.2019
Для серверов где ОС Windows Server 2008 R2
нужно разрешить выполнение PowerShell
скриптов:
powershell -command set-executionpolicy unrestricted powershell -command get-executionpolicy
На заметку: От 15.07.2019
На сервера с осью Windows Server 2008 R2 Standard
нужно установить Win7AndW2K8R2-KB3191566-x64.msu
чтобы отрабатывал коммандлет Unblock-File. Также выявил что файл bat нужно подправить, потому как если это не сделать при подключении под профилем пользователя к TS вы будете получать сообщение вида:
Security waring
Run only script that you trust. While scripts from the internet can be usefule, this script can potentially harn your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning message.
@echo off @powershell -WindowStyle Hidden -NoProfile -ExecutionPolicy Bypass -command "\\srv-dc\netlogon\cache_new.ps1" @"C:\Program Files (x86)\1cv8\common\1cestart.exe" ENTERPRISE /AppAutoCheckMode /DisableStartupMessages /RunModeOrdinaryApplication
На заметку: От 19.07.2019
На сервера Windows Server 2012 R2 Standard
– пакет обновления Win8.1AndW2K12R2-KB3191564-x64.msu
, т.к. по умолчанию у меня PowerShell
версии 2.0
, а будет 5.1
По итогу получаю автоматизированное средство очистки кеша 1С
при работе региональных пользователей с NLB
-кластером терминальных серверов. Наблюдаю, как идет работа в боевом режиме, в тестовой конфигурации все отрабатывает. Что самое ценное, что шаги отрабатывают, как на Windows Server 2008 R2 & Windows Server 2012 R2.
На этом у меня всё, с уважением Олло Александр aka ekzorchik.