即把本地的文件拷贝到远程计算机,或者把远程计算机的文件拷贝到本地。
我能够连接到远程计算机,并进行操作,但是只能把远程计算机上的一个文件复制到远程计算机的另一个位置,而无法复制到我的机器。
请问有什么办法?
我能够连接到远程计算机,并进行操作,但是只能把远程计算机上的一个文件复制到远程计算机的另一个位置,而无法复制到我的机器。
请问有什么办法?
解决方案 »
- jQuery怎么实现修改按钮Button的Text值
- 本人不刚学 类的属性是只读 怎么进行实体化?
- 如何不通过查询语句,存储过程等数据库操作。从多表中生成多节点的XML
- 特急,CSDN上。NET高手呢?
- 请问可以c#开发PDA的软件吗,可以做串口通讯吗,怎么做,谢谢
- WindowApplication中如何知道在某个窗体上有几个菜单?
- 大家在项目中是如何处理关联查询返回结果的。
- 获取覆盖图标(overlay icon)的问题。
- asp.net 动态生成的linkButton如何绑定点击事件
- 利用c#程序怎么做成通常意义的三层?
- 这句中的三元符如何理解
- 求C#的控件,For Windows/Web FORM
System.Net.FileWebResponse
/// WMI接続(リモートの場合)を開く
/// </summary>
public void WMIConnetion(string pcIp)
{
m_WMIConnetion_OK = false;
try
{
ConnectionOptions connection = new ConnectionOptions();
connection.Username = "administrator";
connection.Password = "drnet";
connection.Authority = "ntlmdomain:DOMAIN";
string path = "\\\\" + pcIp + "\\root\\CIMV2";
m_WMI_Scope = new ManagementScope(path, connection);
m_WMI_Scope.Connect();
if (m_WMI_Scope.IsConnected)
{
m_WMIConnetion_OK = true;
}
}
catch (ManagementException err)
{
throw new DoctorSysInfoException(err, 4);
}
catch (System.UnauthorizedAccessException unauthorizedErr)
{
unauthorizedErr.Data.Add("name", "administrator");
unauthorizedErr.Data.Add("psw", "drnet");
throw new DoctorSysInfoException(unauthorizedErr, 5);
}
catch (Exception ee)
{
throw new DoctorSysInfoException(ee, 109);
}
}
/// リモートPCのBIOS情報を取得します
/// </summary>
public void WMIBiosInfo()
{
m_WMIBiosInfo_OK = false;
m_Manufacturer = "";
m_SerialNum = "";
if (m_WMI_Scope.IsConnected)
{
try
{
ObjectQuery queryBios = new ObjectQuery("SELECT Manufacturer,SerialNumber FROM Win32_BIOS");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(m_WMI_Scope, queryBios);
foreach (ManagementObject queryObj in searcher.Get())
{
if (queryObj["Manufacturer"] != null)
{
m_Manufacturer = queryObj["Manufacturer"].ToString();
m_WMIBiosInfo_OK = true;
}
if (queryObj["SerialNumber"] != null)
{
m_SerialNum = queryObj["SerialNumber"].ToString();
m_WMIBiosInfo_OK = true;
}
}
}
catch (Exception ee)
{
throw new DoctorSysInfoException(ee, 101);
}
}
}
虽然不是复制文件
主要是select语句那里改改,应该可以实现,你自己查下吧。
你操作的都知道远程计算机的用户和密码吗?如果知道的情况下建议使用net use命令操作
下面是一个示例: public static bool Ping(string remoteHost)
{
bool Flag = false;
Process proc = new Process();
try
{
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
string dosLine = @"ping -n 1 " + remoteHost;
proc.StandardInput.WriteLine(dosLine);
proc.StandardInput.WriteLine("exit");
while (proc.HasExited == false)
{
proc.WaitForExit(500);
}
string pingResult = proc.StandardOutput.ReadToEnd();
if (pingResult.IndexOf("(0% loss)") != -1)
{
Flag = true;
}
proc.StandardOutput.Close() ;
}
catch (Exception ex)
{
}
finally
{
try
{
proc.Close();
proc.Dispose();
}
catch
{
}
}
return Flag;
}
public static bool Connect(string remoteHost, string userName, string passWord)
{
if(!Ping(remoteHost))
{
return false;
}
bool Flag = true;
Process proc = new Process();
try
{
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
string dosLine = @"net use \\" + remoteHost + " " + passWord + " " + " /user:" + userName + ">NUL";
proc.StandardInput.WriteLine(dosLine);
proc.StandardInput.WriteLine("exit");
while (proc.HasExited == false)
{
proc.WaitForExit(1000);
}
string errormsg = proc.StandardError.ReadToEnd();
if (errormsg != "")
{
Flag = false;
}
proc.StandardError.Close() ;
}
catch (Exception ex)
{
Flag = false;
}
finally
{
try
{
proc.Close();
proc.Dispose();
}
catch
{
}
}
return Flag;
}File.Copy(sourceFileName , destFileName , overwrite );
sourceFileName
要复制的文件。
destFileName
目标文件的名称。不能是目录。
overwrite
如果可以改写目标文件,则为 true;否则为 false。
其中destFileName的值,就是远程机器IP加盘符加文件夹....
Copying Folders by Using WMIhttp://www.microsoft.com/technet/scriptcenter/guide/sas_fil_ixpv.mspx?mfr=true
然后使用FIle类下面的方法
具体请参考
http://blog.csdn.net/lovefootball/archive/2008/08/25/2827139.aspx
你既然可以连接到远程机器
那你直接用File类下面的命令就可以了
注意的是远程机器上的文件地址你需要加上对方的IP
可以使用WMI