Почему программа не запускается через 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

→ Ссылка