删除远程计算机上的文件

时间:2009-10-16 11:45:03

标签: c# file-io

是否可以连接到远程计算机并从中删除文件?如果没有,是否还有其他方法可以完成这项任务?

有一种想法是我可以创建一个在每台机器上运行的服务,实现删除本地文件的方法,然后向该服务发送命令。

3 个答案:

答案 0 :(得分:4)

如果无法访问网络共享,则可以创建批处理文件以进行远程执行。

所以remove.bat

c:\
cd \Windows\system32\example\
rm *

并使用psexec将蝙蝠复制到远程计算机并在那里执行。

psexec \\example-computer -f -c remove.bat

在psexec退出后,蝙蝠已在远程计算机上完成运行。

psexec使用netbios,因此您应该能够启动到远程计算机的netbios会话。

答案 1 :(得分:2)

如果您可以通过标准的unc网络路径访问它,那么这是最简单的方法。 \\machinename\c$\。您必须是计算机上的管理员才能到达该路径。这适用于System.IO对象(文件,目录等)

答案 2 :(得分:1)

如果它是LAN或VPN上的计算机,您可以使用UNC路径,但您必须知道每台计算机的用户名和密码。您需要使用C#中的WNetUseConnection Win32 API连接到计算机。连接后,您可以使用常规方法删除文件。只需指定文件\\machine\c$\file.txt的完整UNC路径。

如果机器是通过网络而不是LAN或VPN,则WCF听起来就像您正在寻找的那样。您可以使用删除文件的操作创建服务合同。有一个很棒的introduction to WCF services here