2016-04-06 7 views
0

次のコードを使用してプログラムでWMICを管理者として実行しようとしていますが、WMIC.exeが既に管理者として実行されている場合のみです。空のHTML。私はstackoverflowまたは他の場所で関連する問題を見つけることができないようです...誰も問題をここで見ていますか?Process.start()WMIC.exeパスワードの問題

securestringを変換するための私の方法:

SecureString secureString = new SecureString(); 

foreach (char ch in str) 
{ 
    secureString.AppendChar(ch); 
} 

secureString.MakeReadOnly(); 
return secureString; 

STARTCODE:

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"); 
+0

それがWMIの場合は、WMIを管理モードで実行する必要があることを教えてください。管理モードでVisual Studioを起動してください – Apoorv

+0

申し訳ありませんが、私は上記の質問を言い換えました – DaBeast

答えて

0

が、これはWMICのwin7のバグが原因だった、問題を発見しました。それはこのようにアプリケーションの起動パスに\ WINDOWS \ SYSTEM32 \ WBEM \ EN-US(または他の場所)とのリンク:この問題を解決するには、Cのすべての*の.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

関連する問題