Запуск консоли сервера 1С без прав администратора

В этой статье рассказывается как осуществить запуск консоли администрирования серверов 1С без прав администратора если у вас их нет, а консолью нужно пользоваться.

Решение проблемы

Консоль администрирования серверов 1С легко запускается если у вас есть административные права в операционной системе. Но что делать если их нет. Например вы программист, вам разрешили заходить в консоль, но не дали административные права. В этом случае просто создайте текстовый файл с расширением .cmd, например Run1CAdmin.cmd и расположите его на рабочем столе.

Затем запишите в него следующие строки для 64-разрядной оснастки:

Set ApplicationPath="C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

Или для 32-разрядной (нужно явно указать 32-разрядную MMC — C:\Windows\SysWOW64\mmc.exe):

set ApplicationPath="C:\Program Files (x86)\1cv8\common\1CV8 Servers.msc"
set __COMPAT_LAYER=RUNASINVOKER
start "" C:\Windows\SysWOW64\mmc.exe %ApplicationPath%

Теперь вы сможете, с помощью этого файла, запускать консоль администрирования серверов 1С даже если у вас нет административных прав в операционной системе. Но, при этом, у вашего пользователя должно хватать прав на запуск консоли администрирования серверов 1С — C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc.

Кстати, не знаю почему, но консоль открывается не сразу, приходится немного подождать, буквально 20-30 секунд.

Запускаем консоль по созданному ярлыку

Источник — https://forum.infostart.ru/forum86/topic302961

Описание решения

MMC-консоль по умолчанию запрашивает права администратора, так как она предназначена для управления системными компонентами. Но благодаря нашему скрипту мы запускаем консоль без прав администратора. При этом мы не сможем управлять нашей операционной системой, но нам это и не нужно.

Теперь разберёмся с тем, что мы написали в файле Run1CAdmin.cmd.

Этот скрипт предназначен для запуска Microsoft Management Console (MMC) для администрирования серверов 1C с уровнем совместимости RUNASINVOKER. Этот уровень совместимости используется для обеспечения того, чтобы приложение запускалось с теми же привилегиями, что и родительский процесс, а не запрашивало повышенные привилегии.

Вначале мы установили переменную ApplicationPath, значение которой ссылается на саму консоль MMC C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc.

Команда cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%" запускает новый экземпляр командной строки. С помощью опции /min окно сворачивается, а с помощью опции /C окно командой строки закрывается после запуска приложения. Перед запуском устанавливается настройка set __COMPAT_LAYER=RUNASINVOKER, что гарантирует запуск приложения с теми же привилегиями, что и у родительского процесса. И дальше запускается приложение (start "" %ApplicationPath%), при этом двойные кавычки используются для указания заголовка пустого окна.

RUNASINVOKER: Этот уровень совместимости используется для предотвращения запроса приложением повышенных привилегий (запрос UAC). Он гарантирует, что приложение запускается с теми же привилегиями, что и процесс, который его вызвал. Но есть и другие уровни совместимости, например:

  • RUNASADMIN. Запускает приложение с правами администратора, для чего вызывается UAC-запрос, если текущий пользователь не имеет прав администратора.
  • VIRTUALIZE. Включает виртуализацию файловой системы и реестра для приложения. Полезно для устаревших приложений, которые пытаются записывать данные в защищенные области. При этом данные перенаправляются в пользовательские папки (например, AppData).
  • HIGHDPIAWARE. Указывает приложению, что оно должно быть осведомлено о высоком DPI. Полезно для приложений, которые неправильно отображаются на экранах с высоким разрешением.

Другие мои статьи по теме 1С вы найдетё — здесь.

Если понравилась статья, подпишись на мой канал в VK.

Оставьте комментарий