【发布时间】:2016-04-06 12:37:05
【问题描述】:
我正在尝试通过我的程序以管理员身份运行 WMIC,使用以下代码有效,但前提是 WMIC.exe 已经以管理员身份运行,否则它只会返回一个空 HTML。我似乎在 stackoverflow 或其他地方找不到相关问题...有人在这里看到这个问题吗?
我转换安全字符串的方法:
SecureString secureString = new SecureString();
foreach (char ch in str)
{
secureString.AppendChar(ch);
}
secureString.MakeReadOnly();
return secureString;
起始码:
string path = @"C:\Temp\";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = false;
startInfo.FileName = "cmd";
startInfo.Domain = "EU";
startInfo.Verb = "runas";
startInfo.UserName = "Username";
startInfo.Password = GetSecureString("Password");
startInfo.Arguments = @"/k wmic.exe /node: " + "\"" + txt_input_computers.Text + "\" " + "/output:" + path + @"\" + txt_input_computers.Text + ".html " + DDL_WMIC.Text
+ " list full /format:hform";
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
Process.Start(path + @"\" + txt_input_computers.Text + ".html");
【问题讨论】:
-
你的问题不清楚。如果是 WMI,那么让我告诉你 WMI 需要在管理员模式下运行..在管理员模式下启动 Visual Studio
-
对不起,我改写了我的问题,见上文
标签: c# .net process.start wmic securestring