Быстрый запуск "Консоли администрирования 1С" любой версии (через bat файл)

Публикация № 944453

Администрирование - Системное

консоль администрирования сервисные утилиты

2
Если у Вас на серверах более одной версии платформы 1С, то наверняка приходилось иногда перерегистрировать "Консоли администрирования 1С", чтобы открыть нужную версию. Для решения этой задачи сделал bat-файл, который находит все установленные на компьютер версии "консолей администрирования 1С" и после выбора нужной, запускает ее.

Для запуска консоли нужно:

  1. Запустить скрипт от имени администратора (нажать правой клавишей мыши на bat файле и выбрать пункт "Запуск от имени администратора");
  2. В окне будут показаны все версии установленных консолей администрирования 1С. Пользователь вводит номер строки с нужной версией и нажимает Enter;
  3. После этого скрипт регистрирует новую версию консоли и запускает ее.
     

Скрипт тестировал в Windows 7.
Подходит для платформ 1С 8.3, 8.4, версии х86 и х64.
Можно запускать консоли разных версий параллельно.

Важно:

  • У пользователя, под которым запускается bat файл, должны быть права на регистрацию консоли с помощью утилиты "regsvr32";
  • Все платформы 1С должны быть установлены в каталоги по умолчанию ("C:\Program Files (x86)\1cv8\" и/или "C:\Program Files\1cv8\"). При необходимости, путь легко изменить.

P.S. Не могу гарантировать, что заработает у всех. Но если консоль успешно регистрируется стандартным способом (запуск "C:\Program Files (x86)\1cv8\8.*.*.*\bin\RegMSC.cmd"), то и мой скрипт будет работать.

P.P.S. Скрипт написал, т.к. надоело создавать отдельные ярлыки для регистрации каждой версии консоли по мере установки новых платформ 1С.

UPD: Добавлена поддержка х64 версий

2

Скачать файлы

Наименование Файл Версия Размер
Быстрый запуск "Консоли администрирования 1С"
.bat 1,12Kb
23.11.18
11
.bat 1.1 1,12Kb 11 Скачать

См. также

Специальные предложения

Лучшие комментарии
14. morozov.sv 293 23.11.18 12:39 Сейчас в теме
(13) 1. Оптимизировал
2. Добавил поддержку х64

@echo off
setlocal EnableDelayedExpansion

set Path83_x86=C:\Program Files (x86)\1cv8\
set Path83_x64=C:\Program Files\1cv8\

set PathMmc83_x86=%Path83_x86%common\1CV8 Servers.msc
set PathMmc83_x64=%Path83_x64%common\1CV8 Servers (x86-64).msc

set /a num=0
cd /d %Path83_x86%

rem Поиск консолей версий 8.3, 8.4 x86
for /d %%d in ("8.*") do (
	if exist %%d\bin\radmin.dll (
		echo !num!. x86 %%d
		set arrayRadmin[!num!]="!Path83_x86!%%d\bin\radmin.dll"
		set arrayMmc[!num!]="%PathMmc83_x86%"
		set /a num+=1
	)
)

cd /d %Path83_x64%
rem Поиск консолей версий 8.3, 8.4 x64
for /d %%d in ("8.*") do (
	if exist %%d\bin\radmin.dll (
		echo !num!. x64 %%d
		set arrayRadmin[!num!]="!Path83_x64!%%d\bin\radmin.dll"
		set arrayMmc[!num!]="%PathMmc83_x64%"
		set /a num+=1
	)
)

echo.
set /P num_curr="Select platform version (enter line number): "
set /a num-=1

rem Удалить прежнюю регистрацию
FOR /L %%i IN (0,1,%num%) DO ( 
	start /wait regsvr32 /u /s !arrayRadmin[%%i]!
)

rem Зарегистрировать новую версию
start /wait regsvr32 !arrayRadmin[%num_curr%]! /s

rem Запуск
start mmc !arrayMmc[%num_curr%]!
Показать
michael_pokrov; RibD; paxan; 7OH; +4 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо
1. user614822 26 19.11.18 15:22 Сейчас в теме
Непонятно только зачем за стартмани...
Это что суперразработка?


@echo off

start /wait regsvr32 /s "C:\Program Files (x86)\1cv8\8.3.12.1616\bin\radmin.dll"

start "C:\Windows\System32\mmc.exe" "C:\Program Files (x86)\1cv8\common\1CV8 Servers.msc"


Или с параметром номера версии


@echo off

start /wait regsvr32 /s "C:\Program Files (x86)\1cv8\%1\bin\radmin.dll"

start "C:\Windows\System32\mmc.exe" "C:\Program Files (x86)\1cv8\common\1CV8 Servers.msc"
xsazar; CratosX; +2 Ответить
2. morozov.sv 293 19.11.18 15:26 Сейчас в теме
Скрипт это делает удобнее: проверяет какие версии установлены и предлагает их на выбор
3. 7OH 33 21.11.18 10:26 Сейчас в теме
А если есть 64 параллельно - найдёт ?
4. morozov.sv 293 21.11.18 10:31 Сейчас в теме
(3) Должен найти. Ограничений на количество установленных версий нет.
Почему-то нельзя опубликовать файл бесплатно.

Вот исходный код:

@echo off
setlocal EnableDelayedExpansion

set Path=C:\Program Files (x86)\1cv8\
set /a num=0

cd %Path%

for /d %%d in ("8.*") do (
	if exist %%d\bin\radmin.dll (
		echo !num!. %%d
		set myarray[!num!]=%%d\bin\radmin.dll
		set /a num+=1

		rem // Удалить прежнюю регистрацию
		start /wait regsvr32 /u /s "%Path%%%d\bin\radmin.dll"
	)
)

set /P num_curr="Select platform version (enter line number): "

rem // Зарегистрировать новую версию
start /wait regsvr32 "%Path%!myarray[%num_curr%]!" /s

rem // Запуск
start mmc "%Path%common\1CV8 Servers.msc"
Показать
5. 7OH 33 21.11.18 10:39 Сейчас в теме
(4)
Почему-то нельзя опубликовать файл бесплатно

Я тоже этот вопрос админам задавал не раз.
Там вроде можно, но каждый раз надо админа просить, чтобы цену убрал.
6. Bukaska 128 21.11.18 11:04 Сейчас в теме
(4)Только если у Вас товар за рубли в магазине, то тогда можно файлы инструкций и демоматериалы сделать за бесплатно. Если у Вас товар за стартмани, то как там уже на бесплатный файл не поменять.
7. 7OH 33 22.11.18 13:07 Сейчас в теме
Запускаю и пустой список
Прикрепленные файлы:
8. morozov.sv 293 22.11.18 13:09 Сейчас в теме
(7) Возможно, для этих версий не установлены консоли. Нужно проверить наличие файлов "\bin\radmin.dll" в папках вида "8.3.*.*"
9. 7OH 33 22.11.18 13:12 Сейчас в теме
(8) походу проблема из-за запуска с другого диска.
команды cd в данном случае мало, система каталог меняет но остаётся на текущем диске.
Есть можность поправить ?
Сам пока ищу как извлечь последний каталог из найденного пути - вот так что-то нашло "for /d %%d in ("%Path%8.*") do ("
10. morozov.sv 293 22.11.18 13:18 Сейчас в теме
(9) У меня ситуация не воспроизводиться. Можно попробовать так (в строку "cd /d %Path%" добавил ключ /d):

@echo off
setlocal EnableDelayedExpansion

set Path=C:\Program Files (x86)\1cv8\
set /a num=0

cd /d %Path%

for /d %%d in ("8.*") do (
	if exist %%d\bin\radmin.dll (
		echo !num!. %%d
		set myarray[!num!]=%%d\bin\radmin.dll
		set /a num+=1

		rem // Удалить прежнюю регистрацию
		start /wait regsvr32 /u /s "%Path%%%d\bin\radmin.dll"
	)
)

set /P num_curr="Select platform version (enter line number): "

rem // Зарегистрировать новую версию
start /wait regsvr32 "%Path%!myarray[%num_curr%]!" /s

rem // Запуск
start mmc "%Path%common\1CV8 Servers.msc"
Показать
11. 7OH 33 22.11.18 13:25 Сейчас в теме
(10) Спасибо - так вышло.
Ну и мелочь - регистрацию возможно лучше снимать ПОСЛЕ выбора, если таковой будет сделан.
У себя просто убрал снятие регистрации - работает и так.
12. morozov.sv 293 22.11.18 13:32 Сейчас в теме
(11) Согласен. Теперь регистрация снимается после выбора.

@echo off
setlocal EnableDelayedExpansion

set Path=C:\Program Files (x86)\1cv8\
set /a num=0

cd /d %Path%

for /d %%d in ("8.*") do (
	if exist %%d\bin\radmin.dll (
		echo !num!. %%d
		set myarray[!num!]=%%d\bin\radmin.dll
		set /a num+=1
	)
)

set /P num_curr="Select platform version (enter line number): "

for /d %%d in ("8.*") do (
	if exist %%d\bin\radmin.dll (
		rem // Удалить прежнюю регистрацию
		start /wait regsvr32 /u /s "%Path%%%d\bin\radmin.dll"
	)
)

rem // Зарегистрировать новую версию
start /wait regsvr32 "%Path%!myarray[%num_curr%]!" /s

rem // Запуск
start mmc "%Path%common\1CV8 Servers.msc"
Показать
13. 7OH 33 22.11.18 13:36 Сейчас в теме
(12) С вашего позволения ещё пару моментов:
1. Зачем ещё раз искать для удаления (мы же сохранили все найденные в массив) ?
2. Начал было копипастить строки для добавления в массив версий из x64, но немного задумался о запуске регистрации и консоли .
14. morozov.sv 293 23.11.18 12:39 Сейчас в теме
(13) 1. Оптимизировал
2. Добавил поддержку х64

@echo off
setlocal EnableDelayedExpansion

set Path83_x86=C:\Program Files (x86)\1cv8\
set Path83_x64=C:\Program Files\1cv8\

set PathMmc83_x86=%Path83_x86%common\1CV8 Servers.msc
set PathMmc83_x64=%Path83_x64%common\1CV8 Servers (x86-64).msc

set /a num=0
cd /d %Path83_x86%

rem Поиск консолей версий 8.3, 8.4 x86
for /d %%d in ("8.*") do (
	if exist %%d\bin\radmin.dll (
		echo !num!. x86 %%d
		set arrayRadmin[!num!]="!Path83_x86!%%d\bin\radmin.dll"
		set arrayMmc[!num!]="%PathMmc83_x86%"
		set /a num+=1
	)
)

cd /d %Path83_x64%
rem Поиск консолей версий 8.3, 8.4 x64
for /d %%d in ("8.*") do (
	if exist %%d\bin\radmin.dll (
		echo !num!. x64 %%d
		set arrayRadmin[!num!]="!Path83_x64!%%d\bin\radmin.dll"
		set arrayMmc[!num!]="%PathMmc83_x64%"
		set /a num+=1
	)
)

echo.
set /P num_curr="Select platform version (enter line number): "
set /a num-=1

rem Удалить прежнюю регистрацию
FOR /L %%i IN (0,1,%num%) DO ( 
	start /wait regsvr32 /u /s !arrayRadmin[%%i]!
)

rem Зарегистрировать новую версию
start /wait regsvr32 !arrayRadmin[%num_curr%]! /s

rem Запуск
start mmc !arrayMmc[%num_curr%]!
Показать
michael_pokrov; RibD; paxan; 7OH; +4 Ответить
Оставьте свое сообщение