Я понимаю, что на этот вопрос уже было дано достаточно хорошее разрешение, которое присуще Windows, и поэтому должно быть наиболее совместимым, и я полностью согласен.
Я также хотел сказать, что я не согласен с комментарием @ splattne (но не с его реальным ответом) - что разрешение в другой упомянутой теме заслуживает доверия. Этот ответ включает запуск сценария от имени другого пользователя (SYSTEM), что в значительной степени эквивалентно предоставлению корневого доступа сценария. Это также не удастся для заданий, таких как ROBOCOPY
(на что ссылается Джон Ренни), которые требуют доступа к сети.
Я никогда CMDOW
раньше не пробовал , но я хотел бы предложить другое подобное разрешение, которое [хотя и не установлено в Windows], по-прежнему легко переносимо для большинства версий и поставляется как в 32-, так и в 64-битных версиях, и это NirCmd .
NirCmd - очень мощный инструмент, имеющий множество опций, наиболее полезной из которых я лично считаю, что он способен запускать скрытые командные окна, просто выполняя следующее:
c:\path\to\nircmd.exe exec hide "c:\path\to\mybat.bat"
Из exec
раздела Справочника по командам NirCmd :
exec [show/hide/min/max] [application + command-line]
Запускает приложение и, при необходимости, указывает один или несколько параметров командной строки для исполняемого приложения. Параметр [show / hide / min / max] указывает, будет ли запущенное приложение видимым или нет. Если указано «скрыть», запущенное приложение не будет видимо пользователю. Если указано «max», окно запущенного приложения будет развернуто. Если указано «min», окно запущенного приложения будет свернуто.
РЕДАКТИРОВАТЬ:
я пытался запустить ROBOCOPY
задание и попробовал метод в этом ответе, и он не работал, даже после редактирования прав доступа к сети. Я попытался дважды щелкнуть сценарий и не смог заставить его работать, но смог запустить его только в командной строке с повышенными привилегиями. Я создал ярлык для командного файла и запустил его от имени администратора и смог запустить его, дважды щелкнув по нему, но метод, который я использовал, заключался в том, чтобы запустить его скрытым как SYSTEM (я знаю, я знаю) - но он действительно работает ROBOCOPY
, если он имеет правильные права доступа к пакетному файлу.
РЕДАКТИРОВАТЬ 2:
По какой-то причине, это не будет работать как SYSTEM (возможно, вещь доступа к сети, на которую ссылались ранее) - я заметил это только после того, как на самом деле работает ROBOCOPY
без флага / L, который в основном просто симуляция и [по-видимому] не на самом деле подключиться к удаленной системе, но когда я запускаю командный файл с наивысшими привилегиями и проверяю скрытый флажок, я все равно могу запустить его как зарегистрированный пользователь в фоновом режиме без отображения командного окна, для чего бы это ни стоило никому ,