static void Main(string[] args)
{
if (!RunAsAdmin(UserName, PassWord, System.Environment.CurrentDirectory + "\\RunAS.exe"))
{
Console.WriteLine("運行主程式出錯!");
Console.ReadKey();
}
}
public static bool RunAsAdmin(string inUserName, string inPassWord, string fileFullPath)
{
Process MBRTProcess = null;
MBRTProcess = new Process();
MBRTProcess.StartInfo.UserName = inUserName;
string strPWD = inPassWord;
SecureString password = new SecureString();
foreach (char c in strPWD.ToCharArray())
{
password.AppendChar(c);
}
MBRTProcess.StartInfo.Password = password;
MBRTProcess.StartInfo.WorkingDirectory = System.Environment.CurrentDirectory;
MBRTProcess.StartInfo.FileName = "RunAS.exe";
MBRTProcess.StartInfo.UseShellExecute = false;
MBRTProcess.StartInfo.LoadUserProfile = true;
MBRTProcess.StartInfo.CreateNoWindow = true;
MBRTProcess.StartInfo.Domain = "我的域";
MBRTProcess.Start();
return true;
}
一直報錯!
System.ComponentModel.Win32Exception
HResult=0x80004005
Message=目錄名稱無效。
Source=System
StackTrace:
在 System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
在 System.Diagnostics.Process.Start()
在 RunAsAdmin.Program.RunAsAdmin(String inUserName, String inPassWord, String fileFullPath) 在 C:\Users\yms\source\repos\RunAS\RunAsAdmin\Program.cs 中: 第 43 行
在 RunAsAdmin.Program.Main(String[] args) 在 C:\Users\yms\source\repos\RunAS\RunAsAdmin\Program.cs 中: 第 18 行
主要目的是要標準域用戶能以指定域管理員帳號運行某些程式,現在測驗的結果是,如果這個域管理帳號登陸過這臺計算機就不會報這個錯誤,能正常運行指定的程式,如果換一個沒有登陸過這臺計算的域管理員帳號,就報"目錄名稱無效"這個錯誤, 主要就是設定作業目錄這里的原因了,可能是沒有登陸過的域帳號在這臺電腦上沒有用戶組態檔,但是不知道怎么解決這個問題,頭疼,想半天了,謝謝大家!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/126016.html
標籤:C#
上一篇:圖片轉base64編碼
