域中有臺服務器Copy文件到本機,本機用戶對此目錄有讀寫權限,可以Copy,Delete文件。
程序每天自動執行Copy的動作,當我本機用戶登陸出來以後,登陸用戶註銷了,程序也就自動退出了,沒法執行了。
把程序做成了服務,只要開機程序就會運行,但是系統用戶(system)就沒權限操作
方法:
在Copy文件之前先用有權限的賬號登陸,然後用此賬號操作。
就象在SQL語句中連接另外一臺服務器那樣。
public static void OpenDirectory(string str_Directory,string to_Directory, string str_UserName, string str_Password)
{
string str_LogoOn = "net use " + str_Directory + " /user:" + str_UserName + " /"" + str_Password + "/"";
string str_OpenDirectory = "start " + str_Directory;
Process p_Tmp = new Process();
p_Tmp.StartInfo.RedirectStandardError = true;
p_Tmp.StartInfo.RedirectStandardInput = true;
p_Tmp.StartInfo.RedirectStandardOutput = true;
p_Tmp.StartInfo.UseShellExecute = false;
p_Tmp.StartInfo.CreateNoWindow = true;
p_Tmp.StartInfo.FileName = "cmd.exe";
p_Tmp.Start();
p_Tmp.StandardInput.WriteLine(str_LogoOn);
p_Tmp.StandardInput.WriteLine(str_OpenDirectory);
p_Tmp.StandardInput.WriteLine("exit");
p_Tmp.Close();
p_Tmp.Dispose();
string[] files = Directory.GetFiles(fromDirectory);
if (files.Length > 0)
{
foreach (string s in files)
{
FileInfo objFI = new System.IO.FileInfo(s);
File.Copy(str_Directory + "//" + objFI.Name.ToString(), to_Directory + "//" + objFI.Name.ToString());
}
}
}