域中有台服务器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());
}
}
}