今天讲讲通过代码来将rdpwrap进行安装。
public static string StartProcess(string filePath, string parameters = null, Action<string> action = null, string workingdir = null)
{
try
{
Process myprocess = new Process();
ProcessStartInfo startInfo;
if (!string.IsNullOrEmpty(parameters))
{
startInfo = new ProcessStartInfo(filePath, parameters);
}
else
{
startInfo = new ProcessStartInfo(filePath);
}
myprocess.StartInfo = startInfo;
myprocess.StartInfo.UseShellExecute = false;
myprocess.StartInfo.RedirectStandardOutput = true;
myprocess.StartInfo.CreateNoWindow = true;
myprocess.StartInfo.Verb = "runas";
if (workingdir != null)
{
myprocess.StartInfo.WorkingDirectory = workingdir;
}
myprocess.Start();
string line = myprocess.StandardOutput.ReadToEnd();
// do something with line
myprocess.WaitForExit();
if (action != null)
{
action(line);
}
return line;
}
catch (Exception ex)
{
return "";
}
}
安装服务
await Task.Run(() =>
{
var output = StartProcess($@"{App.ExeDirectory}Resource\Rdpwrap\RDPWInst.exe", "-i");
if (output.Contains("is already installed"))//已经安装过
{
}
else if (output.Contains("Successfully installed"))//第一次安装
{
if (output.Contains("This version of Terminal Services is not supported"))
{
var txt = File.ReadAllText($@"{App.ExeDirectory}Resource\Rdpwrap\new.txt");
using (FileStream fs = new FileStream(@"C:\Program Files\RDP Wrapper\rdpwrap.ini", FileMode.Create))
{
using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8))
{
w.Write(txt);
}
}
output = StartProcess($@"{App.ExeDirectory}Resource\Rdpwrap\RDPWInst.exe", "-r");
}
}
});
安装后如果返回不支持,可以用我们准备好的最新的配置文件替换默认的配置文件,替换完后要重启服务才能生效。通过RDPWInst可以安装、重启、卸载服务,安装后如果不支持,可以去github上查找配置信息,更新配置文件。