Почему программа не запускается через powershell?
Я записал в реестр Windows 7 команду для запуска блокнота с правами Администратора.
Она появляется в контекстном меню Windows но при нажатии на него ничего видимого не происходит.
powershell.exe -command Start-Process C:\Windows\SysWOW64\notepad.exe -Verb RunAs
Если скопировать эту строчку и запустить в CMD блокнот запуститься через 13 секунд раздумья.

Ответы (2 шт):
Да, первый запуск PowerShell не мгновенный, мягко выражаясь. Можете попробовать:
PowerShell -windowstyle hidden -Command "Start-Process notepad -Verb RunAs"
Ну или если вас не смущает сторонняя утилита, можете скачать nircmd и закинуть ее в папку System32. Далее использовать следующую команду:
nircmd elevate notepad.exe "%1"
Следующая команда запускает программу с правами администратора.
Для записи в реестр нужно экранировать все двойные кавычки!
Это можно сделать обратным слешем проставляя его перед каждой двойной кавычкой.
Пример записи в .reg файле
@="mshta vbscript:createobject(\"shell.application\").shellexecute(\"C:\\Windows\\notepad.exe\",\"\",\"\",\"runas\",1)(window.close)"
Так она выглядит в .bat файле который запишет её уже в .reg файл.
%exec% это переменная в которую заносится путь к программе.
echo.@="mshta vbscript:createobject(\"shell.application\").shellexecute(\"%exec%\",\"\",\"\",\"runas\",1)(window.close)" >> Menu.reg
Вот так вот будет выглядеть готовая запись в реестре, после запуска .reg файла.

Спасибо за команду Daemon-5