2015-02-04 3 views
0

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

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

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

ответ

1

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

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

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

link_name.lnk 

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