MSTSC на удаленный рабочий стол с учетными данными с помощью powershell, используя С#

Я пытаюсь использовать такой скрипт:

$Server="remotepc"

$User="user"

$Password="password"

cmdkey /generic:$Server /user:$User /pass:$Password
mstsc /v:$Server /console

который отлично работает при работе в powershell.

Я пытаюсь получить это, используя пространство выполнения и конвейер в С#.

Итак, этот код работает:

 string server = "server";
 string mstscScript = "mstsc /v:"+server;

            Runspace runspace = RunspaceFactory.CreateRunspace();
            runspace.Open();

            Pipeline pipeline = runspace.CreatePipeline();
            pipeline.Commands.AddScript(mstscScript);


            pipeline.Invoke();

            runspace.Close();

Однако, если я добавляю скрипт с именем пользователя и паролем, он перестает работать и зависает.

Так что этот код не работает.

string username = "user";
string password = "password";
string server = "server";


            string cmdScript="cmd/genaric:"+server+" /user:$" + username" + 
             /pass:$" + password;
            string mstscScript = "mstsc /v:" + server;

            Runspace runspace = RunspaceFactory.CreateRunspace();
            runspace.Open();

            Pipeline pipeline = runspace.CreatePipeline();
            pipeline.Commands.AddScript(cmdScript);
            pipeline.Commands.AddScript(mstscScript);


            pipeline.Invoke();

            runspace.Close();

person James    schedule 27.10.2018    source источник
comment
"cmd/genaric:" - общий   -  person TessellatingHeckler    schedule 27.10.2018


Ответы (1)


Это сработало для меня. Я думаю, что ваш cmdkey имеет опечатку.

string tsScript = $"mstsc /v:{machinename}";
string cmdKey = $"cmdkey /generic:{machinename} /user:{username} /pass:{password}";

using (Runspace rs = RunspaceFactory.CreateRunspace())
{
    rs.Open();

    using (Pipeline pl = rs.CreatePipeline())
    {
        pl.Commands.AddScript(cmdKey);
        pl.Commands.AddScript(tsScript);
        pl.Invoke();
    }
}
person fourwhey    schedule 27.10.2018
comment
Это работает! Цените помощь. Иногда просто нужна вторая пара глаз, я думаю. Цените помощь. - person James; 27.10.2018
comment
Примите мой ответ и проголосуйте за него, если вы нашли его полезным. - person fourwhey; 28.10.2018