我可以从脚本或者命令行将文件复制到网上邻居吗?

时间:2020-03-05 18:39:28  来源:igfitidea点击:

在Windows XP中,是否可以从命令行,批处理文件甚至甚至是PowerShell脚本将文件复制到网上邻居?

使我走上这条研究之路的原因是,试图将文件从用户的计算机发布到WSS 3.0文档库。我无法将驱动器映射到有问题的库,因为WSS站点只能通过80或者443以外的端口上的NTLM进行身份验证。我想我可以替代地使用WSS Web服务将文件推出,但我我真的很想知道这个问题的答案。

解决方案

回答

是的你可以。我建议使用robocopy之类的工具。

回答

我们可以使用" net"命令进行身份验证,然后复制文件。

copy src \dest-machine\shared-library-name\dest

我真的不确定如果需要身份验证该如何处理。

回答

如果需要编写脚本,则应考虑使用NAnt。

它主要用于构建脚本,但是它非常强大并且相当容易上手。

还有NAntContrib和nant ftp任务应该可以。

回答

我对此可能是错的,但是我认为尼克的robocopy解决方案或者内森的复制命令解决方案都不起作用。 Robocopy似乎想要一个映射的驱动器,我不能这样做,因为它不在端口80或者443上运行,并且Windows无法处理以UNC样式名称包含该端口的路径:

copy src \dest-machine:45000\shared-library-name\dest

我也没有看到可以处理这种情况的NAnt任务。

我也知道有一些工具可以让我映射WebDAV驱动器。我更想知道是否有某种方式可以使用不使用GUI设置的网上邻居。

回答

Powershell使用提供程序的抽象为数据存储提供通用接口。这些似乎坚持使用通用名词" Item",因此我们可以使用" man * item *"获得完整列表。如果我们知道另一种复制和处理存储中数据的方法,则也可以使用它,但是使用cmdlet提供了一种更好的"一次学习,经常使用"的方法。在情况下,我们可以:

Copy-Item test.txt -Destination \dest-machine\share

如果需要,复制项目还支持-Credential参数。

回答

使用批处理文件,我们可以登录到资源并复制文件:

批处理文件将包含以下内容:

net use \{dest-machine}\{destfolder} {password} /user:{username}
copy {file} \{dest-machine}\{destfolder}

例如

net use \Development\myfolder mypassword /user:Administrator
copy newfile.c \development\myfolder

回答

从我所看到的情况来看,似乎不可能从命令行直接访问/操作网上邻居,无论是在PowerShell中还是普通的ol'命令提示符下。

@slipsec(#13899):
感谢建议,但是PowerShell比net use命令更不支持目标路径中的端口号。

因此,在特殊情况下,我能想到的最好的事情就是硬着头皮购买像WebDrive这样的东西,以通过WebDAV在非标准端口上启用驱动器映射,或者进行一些不同的配置(例如,具有不同IP地址和主机标题)以通过标准端口上的NTLM公开网站。

回答

如果我没记错的话,"网上邻居"实际上并没有API,它只是一堆快捷方式,SharePoint共享使用了Shell Extension。

所有这些要说:从PowerShell访问Sharepoint作为文件系统还需要扩展SharePoint Provider。