В Total Commander существует такая удобная штука как панель инструментов или Tool Bar. В простой конфигурации там присутствует только одна кнопка и команда на вроде такой:
Command:%COMMANDER_PATH%\Sudo.exe
Parameters:cmd.exe /k cd /d %P
Что не обеспечивает некоторые разграничения, а это:
  1. Запуск 32-битной консоли из Total Commander любой разрядности под текущим пользователем
  2. Запуск 64-битной консоли из Total Commander любой разрядности под текущим пользователем
  3. Запуск 32-битной консоли из Total Commander любой разрядности с повышением прав до Administrator
  4. Запуск 64-битной консоли из Total Commander любой разрядности с повышением прав до Administrator
К тому же оно требует отдельной утилиты для запуска из под администратора. Существует другой способ добиться желаемого встроенными средствами ОС Windows. Нам потребуется:
  1. Создать директорию на диске, где будут лежать внешние файлы адресуемые из Total Commander.
  2. Создать специальную директорию `Sysnative` в директории `%SystemRoot%` (только для Windows 64-бита).
  3. Создать ярлыки (shortcut) Windows для запуска любой команды в режиме администратора или скопировать уже имеющиеся.
  4. Создать 4 кнопки на панели инструментов в версии для Windows 64-бит или 2 кнопки в версии для Windows 32-бита.

1. Создать директорию на диске, где будут лежать внешние файлы адресуемые из Total Commander.

Чтобы наши файлы не зависели от версии Total Commander, а также, от его расположения, следует создать независимую директорию. К примеру:
C:\Program Files\Total Commander Scripts
Здесь будут храниться скрипты, ярлыки и иконки для наших кнопок.
Если каталог C:\Program Files\Total Commander Scripts будет располагаться в другом месте, то следует далее везде подменить путь на тот который будет у вас.

2. Создать специальную директорию `Sysnative` в директории `%SystemRoot%` (только для Windows 64-bit).

Для этого необходимо открыть 64-битную консоль в режиме администратора и ввести следующую команду:
>mklink /D "%SystemRoot%\Sysnative" "%SystemRoot%\System32"
Это создаст директорию `Sysnative` видимую также из 32-битной консоли, т.е. оригинальная версия директории `%SystemRoot%\System32` станет доступна из 32-битного процесса консоли.

3. Создать ярлыки (shortcut) Windows для запуска любой команды в режиме администратора или скопировать уже имеющиеся.

Можно создать ярлыки вручную. Для Windows 32-бита:
  1. cmd.lnk
  2. Путь к объекту:%COMSPEC%
    Рабочая папка: (пусто)
  3. cmd_admin.lnk
  4. Путь к объекту:%COMSPEC%
    Рабочая папка: (пусто)
    По кнопке Дополнительно... нужно выбрать пункт Запуск от имени Администратора.
Для Windows 64-бита:
  1. cmd_sysnative.lnk
  2. Путь к объекту:%SystemRoot%\Sysnative\cmd.exe
    Рабочая папка: (пусто)
  3. cmd_sysnative_admin.lnk
  4. Путь к объекту:%SystemRoot%\Sysnative\cmd.exe
    Рабочая папка: (пусто)
    По кнопке Дополнительно... нужно выбрать пункт Запуск от имени Администратора.
  5. cmd_wow64.lnk
  6. Путь к объекту:%SYSTEMROOT%\SysWOW64\cmd.exe
    Рабочая папка: (пусто)
  7. cmd_wow64_admin.lnk
  8. Путь к объекту:%SYSTEMROOT%\SysWOW64\cmd.exe
    Рабочая папка: (пусто)
    По кнопке Дополнительно... нужно выбрать пункт Запуск от имени Администратора.
Либо, скопировать в директорию аналогичные файлы отсюда: https://sourceforge.net/p/contools/contools/HEAD/tree/trunk/Scripts/Tools/ToolAdaptors/lnk/. Это обычные ярлыки Windows, которые позволяют запускать командный интерпретатор Windows cmd.exe с любыми параметрами-ключами командной строки. Достаточно просто выполнить ярлык в командной строке и передать нужный параметр:
>cmd_admin.lnk /c "echo 123&pause"

4. Создать 4 кнопки на панели инструментов в версии для Windows 64-бит или 2 кнопки в версии для Windows 32-бита.

Для этого в специальном диалогом окне Total Commander ввести следующие параметры для создания кнопки.
Для Windows 32-бита:
  1. Запуск от текущего пользователя.
  2. Command:cmd.lnk
    Parameters:/K set "PWD=%P"&call cd /d "%%PWD%%"&title %%COMSPEC%%
    Start path:C:\Program Files\Total Commander Scripts\
    Icon file:C:\Program Files\Total Commander Scripts\images\cmd32.ico
    Icon:0
    Tooltip:cmd 32-bit
  3. Запуск от имени администратора.
  4. Command:cmd_admin.lnk
    Parameters:/K set "PWD=%P"&call cd /d "%%PWD%%"&title %%COMSPEC%%
    Start path:C:\Program Files\Total Commander Scripts\
    Icon file:C:\Program Files\Total Commander Scripts\images\cmd32_admin.ico
    Icon:0
    Tooltip:cmd 32-bit as admin
Для Windows 64-бита:
  1. Запуск 64-битной консоли от текущего пользователя.
  2. Command:cmd_sysnative.lnk
    Parameters:/K set "PWD=%P"&call cd /d "%%PWD%%"&title %%COMSPEC%%
    Start path:C:\Program Files\Total Commander Scripts\
    Icon file:C:\Program Files\Total Commander Scripts\images\cmd64.ico
    Icon:0
    Tooltip:cmd 64-bit
  3. Запуск 64-битной консоли от имени администратора.
  4. Command:cmd_sysnative_admin.lnk
    Parameters:/K set "PWD=%P"&call cd /d "%%PWD%%"&title %%COMSPEC%%
    Start path:C:\Program Files\Total Commander Scripts\
    Icon file:C:\Program Files\Total Commander Scripts\images\cmd64_admin.ico
    Icon:0
    Tooltip:cmd 64-bit as admin
  5. Запуск 32-битной консоли от текущего пользователя.
  6. Command:cmd_wow64.lnk
    Parameters:/K set "PWD=%P"&call cd /d "%%PWD%%"&title %%COMSPEC%%
    Start path:C:\Program Files\Total Commander Scripts\
    Icon file:C:\Program Files\Total Commander Scripts\images\cmd32.ico
    Icon:0
    Tooltip:cmd 32-bit
  7. Запуск 32-битной консоли от имени администратора.
  8. Command:cmd_wow64_admin.lnk
    Parameters:/K set "PWD=%P"&call cd /d "%%PWD%%"&title %%COMSPEC%%
    Start path:C:\Program Files\Total Commander Scripts\
    Icon file:C:\Program Files\Total Commander Scripts\images\cmd32_admin.ico
    Icon:0
    Tooltip:cmd 32-bit as admin
Соответствующие файлы иконок можно скачать отсюда: https://sourceforge.net/p/contools/contools/HEAD/tree/trunk/Scripts/Tools/ToolAdaptors/totalcmd/images/.

В результате должны получиться следующие кнопки:
Для Windows 32-бита:
Кнопки для Windows 32-бита
Для Windows 64-бита:
Кнопки для Windows 64-бита

Leave a Comment

Your email address will not be published. Required fields are marked *