Process.start() Проблема с паролем WMIC.exe

Я пытаюсь запустить 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");

person DaBeast    schedule 06.04.2016    source источник
comment
ваш вопрос не ясен. Если это WMI, позвольте мне сказать вам, что WMI должен работать в режиме администратора. Запустите Visual Studio в режиме администратора.   -  person Apoorv    schedule 07.04.2016
comment
Извините, я перефразировал свой вопрос, см. выше   -  person DaBeast    schedule 07.04.2016


Ответы (1)


Обнаружил проблему, это было из-за ошибки Win7 WMIC. Чтобы исправить это, вы можете скопировать все файлы *.xsl из C:\Windows\System32\wbem\en-US в путь запуска приложения (или в другое место) и связать его следующим образом:

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

Возможный обман для ошибки wmic (недопустимый формат XSL) в windows7

person DaBeast    schedule 11.04.2016