Уважаемые пользователи, хотел поделиться некоторыми наработками по "обслуживанию" временных файлов пользователей 1С на сервере. Зачастую бывает такое, что пользователей на сервере много - файлов скапливается много, чистить "ручками" никому не хочется, да и муторное это занятие. После долгих мучений с местом на диске и размышлений, что с этим делать, было решено автоматизаровать процесс. Задумано - сделано ! :) Кому будет интересно - пишите, расскажу и подскажу. Собственно, что умеет и делает мой вариант решения в виде батника (напишу поэтапно, что он делает):
- Предупреждает пользователей о выключении программы за 2 минуты.
- Останавливает службу 1С.
- Ждет завершения всех копий процесса rphost.exe (через цикл, так что пока все не пропадут - дальше не пойдет).
- Добивает запущенные 1С-ки пользователей.
- Чистит временные файлы всех пользователей на сервере в папках Local и Roaming (кроме расширения *.pfl, перебирая все папки и подпапки).
- Далее ползет в ...\srvinfo\reg_1541\ и удалет все папки (кроме файлов в корне и одной папки с самым длинным названием)
- Делает копию паки ...\srvinfo\reg_1541\ с остаточными файлами (на всякий случай, т.к. потерять основные настройки не хочется).
- Запускает службу 1С.
- после запуска службы, в моем варианте запускает некоторые приложения для определенного пользователя.
- Сообщает пользователям на сервере, что "обслуживание завершено" и они могут работать дальше.
P.S. решил поделиться после того, как "собирал" данный "кодик" буквально по "кусочкам" и многое "допиливал" уже сам...думаю что хоть кому-нить этим помогу. Представляю сам код (где иероглифы - там сообщение выводится на экран нормальное :) ):
@echo off
msg * /SERVER:main1c "‚Ќ€ЊЂЌ€… !!! —…ђ…‡ 2 Њ€Ќ“’› Ѓ“„…’ Ћ’Љ‹ћ—…Ќ€… ЏђЋѓђЂЊЊ› 1‘, ЏђЋ‘њЃЂ ‡ЂЉђ›’њ Џђ€‹Ћ†…Ќ€… !!!"
timeout /t 120
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
timeout /t 10
cd "C:\Program Files\1cv8\8.3.6.2152\bin"
set filename=rphost.exe
:BACK
for /f %%a in ('tasklist /nh /fi "imagename eq %filename%" ^| find /c "%filename%"') do set /a errorlevel=%%a
if %errorlevel% NEQ 0 goto BACK
Taskkill /IM 1cv8.exe /F
timeout /t 5
for %%i in ("%userprofile%") do set ds=%%~dpi
for /f "delims=" %%i in ('dir "%ds%" /ad-h /b') do (
for /f %%t in ('dir /b /B /A-D 2^>nul /s "%ds%%%i\AppData\Local\1C\*.*" ^| findstr /i /v ".pfl"') do del /f /q "%%t"
for /f %%t in ('dir /b /B /A-D 2^>nul /s "%ds%%%i\AppData\Roaming\1C\1Cv82\*.*" ^| findstr /i /v ".pfl"') do del /f /q "%%t"
for /f %%t in ('dir /b /B /A-D 2^>nul /s "%ds%%%i\AppData\Roaming\1C\1Cv8\*.*" ^| findstr /i /v ".pfl"') do del /f /q "%%t"
)
cd %PROGRAMFILES%
for /d %%a in (1cv8\srvinfo\reg_1541\"????????-????-????-????-????????????") do rd /s /q %%a
xcopy /K /S /E /Y "%PROGRAMFILES%\1cv8\srvinfo\*.*" "C:\copy_\*.*"
timeout /t 20
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
timeout /t 10
msg * /SERVER:main1c "ЋЃ‘‹“†€‚ЂЌ€… ЏђЋѓђЂЊЊ› ‡Ђ‚…ђ…ЌЋ - Џђ€џ’ЌЋѓЋ ђЂЃЋ—…ѓЋ „Ќџ !!!"
C:\Users\(мое приложение).exe
pause