Как выполнить команды в cmd с административными привилегиями, используя c ++? - PullRequest
0 голосов
/ 20 апреля 2019

Я работаю над приложением hotspot maker , для которого я использую c ++ для выполнения команд netsh в cmd, но для этого мне требуются административные привилегии cmd. Я использовал system (runas \пользователь :), но это дает неизвестную ошибку.

Мой администратор: the_annoying_

ПК NAme: Unknown_God

using namespace std;

int main ()

{

    string name;

    cout << "Enter Name of Wifi Hotspot:" << endl;

    cin >> name;

    string pass1="0",pass2="1";

    while(pass1!=pass2)

    {
        cout << "Enter the password" << endl;
        cin >> pass1;
        cout << "Re-enter the password" << endl;
        cin >> pass2;
        if(pass1!=pass2)
        {
            cout << "Please enter same passwords" << endl;
        }
    }
    cout << "Working..." << endl;
    string command="netsh wlan set hostednetwork mode=allow ssid=" + name + "key=" + pass1;
    const char *command1=command.c_str();
    cout << "Creating Wifi Hotspot using given Credentials" << endl;
    system("runas /user:the_annoying_ command1");
    string comm="netsh wlan start hostednetwork";
    const char *command2=comm.c_str();
    system("runas /user:the_annoying_ command2");
    cout << "Hotspot Sucessfully Created" << endl;
}

1 Ответ

0 голосов
/ 20 апреля 2019

Я думаю, что самым простым решением было бы просто запустить ваше скомпилированное приложение в качестве администратора таким образом, чтобы все подпроцессы также выполнялись с правами администратора (поэтому процесс system ()).

#include <iostream>
{
  system("whoami");
  return 0;
}

sudo ./test => root

. / test => username

Должно быть таким же в Windows.

...