Не буду углубляться в подробности, почему я сделал так и не воспользовался предложенными вариантами, а начну сразу.
Встала потребность корректного и ежедневного копирования базы (судя из поста 1С ников, где говорилось, что лучше всего копировать сам CD'шник, ибо его проще восстановить), ну и собственно говоря, как я его решил.
Создал 3 файла bat, которые запускаются через планировщик.
1й файл) Пишет сообщение о том, что база будет отключена в такой-то промежуток времени;
через 10 минут запускается второй файл
2й файл) Закрывает возможность для подключения через терминал и отключает сессии (для корректного копирования необходимо, чтобы с базой никто не работал)
опять же промежуток 5-10 минут (для того, чтобы сессии закрылись)
3й файл) средствами винрар создается с именем даты и времени пакет, разрешает терминальный вход, ну и, собственно говоря, пишет сообщение о том, что в базе можно работать.
Любую адекватную критику приму с удовольствием, ибо молодой и неопытный =)
Ну и, собственно, текст файлов
1) назовем его, к примеру, send.bat (первые две строчки можно и не писать, но в этом случае желательно создать этот текст в WordPad и сохранить в кодировке MS_Dos, иначе абракадабра будет)
@echo off
chcp 1251
net send * "Просьба завершить работу в базе 1С8 с 07:30 до 08:00"
2) пусть будет reset.bat - тут уже первой строкой мы запрещаем вход в терминал, а второй строкой закрываем все сессии кроме консоли
change logon /disable
for /f "tokens=1,2,3" %%i in ('query session') do echo "%%i" | find "console" || reset session %%k || reset session %%j
3) Пусть будет copy - вот его я сделал через WordPad и сохранил МС_Дос, ибо сообщение он не хотел писать на понятном языке, а выводил абракадабру, ну и вдруг у кого используются в пути к базе или backup'у русские имена.
1я строка копирует базу в архив с именем даты и времени
2я строка разрешает подключение к терминалам
3я строка пишет, что можно работать
"c:\Program Files\WinRAR\WinRAR.exe" a -m2 -ag -dh -r -y -ep1 -x*.md "Куда сохраняем копию\" "откуда копируем\*.*"
change logon /enable
net send * "'В базе можно работать!"
Прошу не пинать, а если что не так, то подсказать =)
Ну или вот вариант мне больше нравится.
где CHOICE /T 600 /D y - что то вроде timeout'a, который выполняется через 600 секунд, получается 1 батник (только сохранен должен быть обязательно в формате MS_Dos)
net send * "Просьба завершить работу в базе 1с8 с 07:30 до 08:00"
CHOICE /T 600 /D y
change logon /disable
echo y | logoff rdp-tcp
CHOICE /T 120 /D y
"c:\Program Files\WinRAR\WinRAR.exe" a -m2 -ag -dh -r -y -ep1 -x*.md "Путь к бэкапу\_ " "путь к базе\*.*"
change logon /enable
net send * "В базе можно работать!"