Командная строка runas user:‹admin-user› ‹command› не выполняется должным образом

Я хотел бы иметь возможность вызывать netsh из моей программы на C++. Я пытался использовать system() для этого. Мне неизвестны какие-либо параметры для system(), которые давали бы результирующие привилегии администратора командной строки, поэтому я пытался использовать команду runas. Я тестировал команду в базовой командной строке:

runas /user:<admin-user> "netsh int ip set address \"Local Area Connection\" static <IP address>"

В то время как сама команда netsh отлично работает в командной строке, запущенной от имени администратора, версия команды runas, похоже, не работает из обычной командной строки. Какие-либо предложения?


person Chris Horn    schedule 04.02.2015    source источник


Ответы (1)


Добро пожаловать в мир административных скриптов Windows! При использовании runas вы только просите Windows сменить пользователя, но не можете запрашивать повышенные привилегии.

Единственный способ, который я когда-либо находил для этого, - использовать короткую ссылку. В проводнике вы создаете короткую ссылку на файл .bat или лучше .cmd. Затем вы заходите в свойства короткой ссылки, вкладка shortlink, там должна быть кнопка Advanced, где вы можете проверить Run as administrator.

Затем вы можете запустить все это из командной строки или даже из другого пакетного файла с помощью:

link_name.lnk

Осторожно, настоящее имя может не совпадать с тем, что я написал выше: у меня есть только французская система, в которой ключевые слова Propriétés, Raccourci, Avancé ... и Exécuter en tant qu'administrateur.

person Serge Ballesta    schedule 04.02.2015