Я хотел бы иметь возможность вызывать netsh из моей программы на C ++. Я пытался использовать system () для достижения этой цели. Я не знаю ни о каких параметрах для system (), которые бы давали полученным привилегиям администратора командной строки, поэтому я пытался использовать команду runas. Я тестировал команду в основной командной строке:
runas /user:<admin-user> "netsh int ip set address \"Local Area Connection\" static <IP address>"
Хотя сама команда netsh отлично работает в командной строке, которая была запущена от имени администратора, версия команды runas, похоже, не работает из обычной командной строки. Какие-либо предложения?
Добро пожаловать в мир административных сценариев Windows! Когда используешь runas
вы только попросите, чтобы окна изменили пользователя, но вы не можете запросить повышенные привилегии.
Единственный способ, который я когда-либо нашел для этого, состоит в использовании короткой ссылки. Под проводником вы создаете короткую ссылку на .bat
или лучше .cmd
файл. Затем вы переходите к свойствам короткой ссылки, вкладка shortlink
должно быть Advanced
кнопка, где вы можете проверить Run as administrator
,
Затем вы можете запустить все это из командной строки или даже из другого командного файла с помощью:
link_name.lnk
Осторожно, настоящее имя может не соответствовать тому, что я написал выше: у меня есть только французская система, в которой ключевые слова Propriétés
, Raccourci
, Avancé ...
а также Exécuter en tant qu'administrateur
,