【发布时间】:2017-07-16 15:47:11
【问题描述】:
我是 C# 新手,我有一个 PowerShell 脚本来使用 IP 地址和用户名将文件发送到多台 PC,我正在使用 new-PSDrive。我想在 C# 中创建相同的程序。
我不知道该怎么做,我浏览了一些教程并尝试了它,但坚持使用 Windows Impersonate Class。我在帖子中写道:_如果我们想将文件共享到共享文件夹,我们可以使用 File.Copy(destPath, SourcePath) 但它不起作用。
这是我正在尝试的代码:
WindowsIdentity idnt = new WindowsIdentity("Administrator", "Test123!");
WindowsImpersonationContext context = idnt.Impersonate();
File.Copy(@"C:\\Sent.txt", @"\\192.xxx.xxx.xxx\\SharedFolder", true);
context.Undo();
弹出错误:提供的名称不是格式正确的帐户名称。 WindowsIdentity idnt = new WindowsIdentity("Administrator", "Test123!");
我不知道如何获得正确的名字,我正在尝试这个: WindowsIdentity idnt = new WindowsIdentity(用户名,密码);
我也试试这个(“\192.xxx.xxx.xxx\WIN-9SMSBCR4V7B\SharedFolder”,密码);
我要复制文件的机器正在同一台机器上的 Vmware 上运行,我可以使用 Powershell 脚本发送。
任何建议都将不胜感激。
【问题讨论】:
-
@Christos 我已经浏览了您在此处标记的帖子,但它对我不起作用,或者我无法以有用的方式进行解释。如果可能,请查看此内容。
-
@没问题!我刚刚重新打开了这个问题。实际上,我赞成您的问题,因为它是精心设计的问题,它非常清楚地表达了问题所在以及您到目前为止所尝试的内容。后来我用谷歌搜索它,我找到了我用来将问题标记为重复的链接。无论如何,我希望其他人可以提供帮助。
-
WindowsIdentity(string, string) 的构造函数不期望密码作为第二个参数,它正在寻找身份验证类型。 msdn.microsoft.com/en-us/library/0dsd0tkz(v=vs.110).aspx
标签: c# windows file-transfer workgroup remote-login