在C#中将目录的全部内容从本地复制到远程计算机

时间:2015-10-03 16:15:39

标签: c#

我尝试创建一个C#Windows窗体工具,将整个内容从本地计算机复制到域中的其他计算机上。

复制文件而不是整个目录的大多数解决方案都无法正常工作的问题。

我无法使用Impersonation更改用户上下文,然后使用File.Copy()复制内容,导致远程计算机上的用户与本地计算机上的用户不同。

using ( new Impersonator( "yourUsername", "yourDomain", "yourPassword" ) )
        {
            // The following code is executed under the impersonated user.
        }

同样使用File.Copy():

File.Copy(
                @"C:\Users\user\Desktop\file.txt",
                @"\\remote\Users\user\Desktop\file.txt"
 );

远程路径应该是一个共享路径,这不是这里的情况,因为我有服务器的凭据,但想要将目录复制到特定的非共享位置。

我找到了另一个解决方案,它使用PSexec工具激活服务器上的监听器,然后从我的本地机器发送文件(Socket编程),但它不稳定:you can find it here

我还考虑编写一个可以做到这一点的PowerShell脚本,并从我的C#程序运行它。

这是以正确方式执行此操作的另一种解决方案,将整个目录/目录从本地复制到远程计算机。

0 个答案:

没有答案