【问题标题】:Process.start() WMIC.exe password issueProcess.start() WMIC.exe 密码问题
【发布时间】: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


【解决方案1】:

发现问题,这是由于WMIC的Win7错误造成的。要解决此问题,您可以将 C:\Windows\System32\wbem\en-US 的所有 *.xsl 文件复制到应用程序启动路径(或其他位置)并像这样链接到它:

        startInfo.Arguments = @"/k wmic.exe /node: " + "\"" + "computername" + "\" " + "/output:" + @"C:\Temp\outputfile.html " + "wmiattrib" + " list full /format:\"" + Application.StartupPath + "\\hform\"";

wmic error (invalid XSL format) in windows7 可能被骗

【讨论】:

    猜你喜欢
    • 2011-04-25
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2014-08-03
    相关资源
    最近更新 更多