Каталог решений - Очистка кэша 1С на терминальных серверах с выбором пользователей (отдельных и всех) и принудительным закрытием активных сессий

Очистка кэша 1С на терминальных серверах с выбором пользователей (отдельных и всех) и принудительным закрытием активных сессий

Очистка кэша 1С на терминальных серверах с выбором пользователей (отдельных и всех) и принудительным закрытием активных сессий

В наличии

Clear_cache_1c_users_terminal_servers.exe — утилита для автоматической очистки кэша 1С у пользователей на терминальных серверах с выбором пользователей (отдельных и всех) и принудительным закрытием активных сессии, созданная из скрипта PowerShell для простоты и удобства использования.

Исходный код действующего скрипта PowerShell к утилите прилагается.

Категория:

Описание

Описание утилиты:

Clear_cache_1c_users_terminal_servers.exe — это утилита для автоматической очистки кэша 1С у пользователей на терминальных серверах с выбором пользователей (отдельных и всех) и принудительным закрытием активных сессии, созданная из скрипта PowerShell для простоты и удобства использования.

Функционал утилиты:

1) Принудительное закрытие активных сессий пользователей перед очисткой кэша
2) Удаление GUID-папок (с шаблоном имени 45979b86-e329-450d-bd5b-5ac1631d4bca) в кэше 1С (версии 8.2, 8.3)
3) Поддержка нескольких серверов (работает с заранее заданным списком)
4) Логирование всех операций (файл Clear1CCache_дата.log)
5) Экспорт списка пользователей (активных и с кэшем)
6) Ручной ввод пользователя (если его нет в списке)
7) Выгрузка списка активных пользователей

Требования:

1) Windows 7/10/11 или Windows Server 2008 R2+.
2) PowerShell 5.1+ (обычно предустановлен).
3) .NET Framework 4.5+ (обычно предустановлен в Windows 10/11)
4) Права администратора (на локальном ПК и серверах).
5) Доступ к терминальным серверам (WinRM, RPC, SMB).

Исходный код действующего скрипта PowerShell к утилите прилагается.

 

Инструкция по запуску и использованию утилиты Clear_cache_1c_users_terminal_servers.exe
(очистки кэша 1С на терминальных серверах с выбором пользователей (отдельных и всех) и принудительным закрытием активных сессии)

Шаг 1. Подготовка.

1) Поместите в отдельную папку утилиту Clear_cache_1c_users_terminal_servers.exe.

2) Запустите от имени учетной записи, имеющего права администратора на терминальных серверах (ПКМ → Запуск от имени администратора).

Шаг 2. Первый запуск.

1) При первом запуске утилита в своей папке создаст файл terminals_servers.txt и откроет его в блокноте для редактирования. Добавьте в него имена серверов (по одному на строку), например:

ts1.company.local
ts2.company.local
192.168.1.100

2) После добавления серверов в файл сохраните его и перезапустите утилиту.

Шаг 3. Выбор сервера.

1) После запуска появится главное меню:

======== Очистка кэша 1С ========
Доступные терминальные серверы:
  1. ts1.company.local
  2. ts2.company.local

=== ДОСТУПНЫЕ КОМАНДЫ ===
E - Редактировать файл серверов
R - Обновить список серверов
L - Показать логи
U - Экспорт активных пользователей
Q - Выход

2) Выберите сервер (введите номер) или команду.

Шаг 4. Работа с пользователями.

1) После выбора сервера откроется меню по выбранному текущему серверу со списками активных и неактивных пользователей:

Выбран сервер: ts1.company.local

=== АКТИВНЫЕ ПОЛЬЗОВАТЕЛИ ===
1. user1
2. user2

=== ПОЛЬЗОВАТЕЛИ С КЭШЕМ 1С (OFFLINE) ===
3. user3
4. user4

=== ВАРИАНТЫ ВВОДА ===
Отдельные номера:     1 3 5
Диапазоны:           1-3
Комбинации:          1 3-5 7

=== ДОСТУПНЫЕ КОМАНДЫ ===
M - Ввести имя пользователя вручную
B - Вернуться к выбору сервера
X - Экспорт списка пользователей
Q - Выход

2) Как выбрать пользователей:

  •  Отдельные номера: 1 3 5
  •  Диапазон: 1-3 (обработает пользователей 1, 2, 3)
  •  Комбинация: 1 3-5 7 (1, 3, 4, 5, 7)

Нажмите Enter → утилита закроет сессии и очистит кэш.

Шаг 5. Ручной ввод пользователя.

Если нужного пользователя нет в списке, нажмите M → введите имя в формате «DOMAIN\username» (если учетная запись — доменная) или «username» (если учетная запись — локальная), и утилита выполнит очистку кэша.

Шаг 6. Логи и экспорт активных пользователей.

1) Все действия записываются в Clear1CCache_дата.log, лог можно открыть через команду L в главном меню.

2) Экспорт списка всех активных пользователей:

  • U (в главном меню) → экспортирует список.
  • X (в меню по выбранному текущему серверу со списками активных и неактивных пользователей) → сохраняет список в users_terminals.txt.

Шаг 7. Выход из утилиты.

Нажмите Q в любом меню для выхода.

Возможные ошибки и решения (возможно посмотреть лог-файл Clear1CCache_*.log в директории утилиты на их наличие):

  • "Список серверов не загружен или утилита не видит серверы" — Проверьте terminals_servers.txt в папке с утилитой и содержание файла
  • "Сервер недоступен" — Проверьте подключение и WinRM (Test-NetConnection -ComputerName сервер -Port 5985).
  • "Нет прав администратора" — Запустите утилиту от имени администратора.
  • "Антивирус блокирует" — Добавьте утилиту в исключения.

Перед запуском утилиты убедитесь:

  • в соблюдении требований для её выполнения
  • в корректных правах доступа (локальный компьютер (где запускается скрипт), запуск от имени администратора (обязательно), разрешение на запись в текущую директорию (для логов и файлов), для терминальных серверов из списка учетная запись должна иметь права администратора на каждом из них)
  • в сетевом доступе (разрешение на удаленное выполнение команд (WinRM), доступ к серверам (пинг до серверов и Test-Connection должны работать), открытость портов (WinRM (HTTP: 5985 / HTTPS: 5986), RPC (135) и SMB (445) для доступа к файловой системе).
  • в отсутствии блокировки антивирусами (добавьте в исключения)

При отсутствии доступа к WinRM выполните команду в PowerShell её настройки на каждом терминальном сервере:

Enable-PSRemoting -Force
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP" -RemoteAddress Any

Перед запуском выполните в PowerShell проверку готовности среды:

# 1. Проверка версии PowerShell
$PSVersionTable.PSVersion

# 2. Проверка прав администратора
([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()
).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)

# 3. Проверка доступа к серверу (пример)
Test-NetConnection -ComputerName "Ваш_Сервер" -Port 5985

Инструкция по утилите также подходит к исходному открытому коду-скрипту PowerShell.

Clear_cache_1c_users_terminal_servers.exe — удобный инструмент для администрирования терминальных серверов 1С, требующий только заполнение именами терминальных серверов terminals_servers.txt и работающий с правами администратора по принципу «Указать терминальные сервера → запустить».

has been added to your cart:
Оформление заказа