是否可以连接到远程计算机并从中删除文件?如果没有,是否还有其他方法可以完成这项任务?
有一种想法是我可以创建一个在每台机器上运行的服务,实现删除本地文件的方法,然后向该服务发送命令。
答案 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。