CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

[求助]怎么样利用WMI向一个远程机器的C盘根目录COPY一个文件,谢谢

楼主sfanpu(Erick Shuai)2006-03-09 19:50:58 在 .NET技术 / C# 提问

rt 问题点数:100、回复次数:15Top

1 楼sfanpu(Erick Shuai)回复于 2006-03-09 23:29:27 得分 0

顶一下Top

2 楼sfanpu(Erick Shuai)回复于 2006-03-10 09:59:17 得分 0

顶  
  Top

3 楼jrl5365(king007)回复于 2006-03-10 10:07:52 得分 0

帮顶,学习一下Top

4 楼jiangsheng(蒋晟.Net[MVP])回复于 2006-03-10 10:09:38 得分 10

http://www.microsoft.com/technet/scriptcenter/guide/sas_fil_ixpv.mspxTop

5 楼pgy8288(Just Coding)回复于 2006-03-10 10:12:08 得分 10

2003里:管理工具->远程桌面->添加一个连接  
  登陆后,在左边的导航栏设置属性->其他->选中登陆远程计算机时自动映射本地驱动器  
  注销后再登陆,可以看到本地的驱动器了Top

6 楼zhongkeruanjian(编程亮子)回复于 2006-03-10 10:23:33 得分 20

Set   sh   =   CreateObject("wscript.shell")  
  sh.run   "net   use   \\xxx.xxx.xxx.xxx\c$\   admin     /user:admin"  
  sh   =   null  
  '   VBScript   source   code  
  Const   source_Folder   =   "C:\"  
  Const   aim_Folder         =   "\\xxx.xxx.xxx.xxx\c$\"  
   
  Set   objFSO   =   CreateObject("Scripting.FileSystemObject")  
  objStartFolder   =   aim_Folder                  
   
  Set   objFolder   =   objFSO.GetFolder(objStartFolder)  
   
  Set   colFiles   =   objFolder.Files  
  For   Each   objFile   in   colFiles  
             
          If   objFile.Attributes   AND   1   Then  
                objFile.Attributes   =   objFile.Attributes   XOR   1  
          End   If  
  Next  
       
   
  'Copy   StartFolder   Files  
  Const   OverWriteFiles   =   True  
  Set   sourceStartFolder   =   objFSO.GetFolder(source_Folder)  
   
  ShowSubfolders   objFSO.GetFolder(sourceStartFolder)  
   
  Set   sourceStartFolderFiles   =   sourceStartFolder.Files  
   
  If   sourceStartFolderFiles.count   >   0   Then  
        objFSO.CopyFile   source_Folder&"\*.*"   ,   aim_Folder,   OverWriteFiles    
  End   IF    
           
   
   
    Wscript.Echo   "Good"  
   
   
  Sub   ShowSubFolders(Folder)  
          Set   objFSO   =   CreateObject("Scripting.FileSystemObject")  
          For   Each   Subfolder   in   Folder.SubFolders  
                  Set   objFolder   =   objFSO.GetFolder(Subfolder.Path)  
                  If   objFSO.FolderExists(aim_Folder&"\"&objFolder.Name)   Then  
                   
                      If   objFolder.Name   <>   "DLLs"   And   objFolder.Name   <>   "DataBase"       Then  
                            Set   colFiles   =   objFolder.Files  
                                For   Each   objFile   in   colFiles  
                                       
                                            If   objFSO.GetExtensionName(source_Folder&"\"&objFolder.Name&"\"&objFile.Name)   <>   "cs"     AND     objFSO.GetExtensionName(source_Folder&"\"&objFolder.Name&"\"&objFile.Name)   <>   "pdb"   Then  
                                             
                                             
                                              If   objFSO.FileExists(aim_Folder&"\"&objFolder.Name&"\"&objFile.Name)   Then  
                                                      Set   aimFile   =   objFSO.GetFile(aim_Folder&"\"&objFolder.Name&"\"&objFile.Name   )  
                                                    If   objFile.DateLastModified>aimFile.DateLastModified   Then  
                                                         
                                                          If   aimFile.Attributes   AND   1   Then  
                                                            aimFile.Attributes   =   aimFile.Attributes   XOR   1  
                                                          End   If    
                                                    objFSO.CopyFile   source_Folder&"\"&objFolder.Name&"\"&objFile.Name   ,   aim_Folder&"\"&objFolder.Name&"\",   OverWriteFiles    
                                                    End   If  
                                              Else  
                                                           
                                                    objFSO.CopyFile   source_Folder&"\"&objFolder.Name&"\"&objFile.Name   ,   aim_Folder&"\"&objFolder.Name&"\",   OverWriteFiles    
                                               
   
                                              End   if  
                                            End   if  
                                         
                            Next  
                           
                      End   If  
                Else  
               
                  If   objFolder.Name   <>   "DLLs"   And   objFolder.Name   <>   "DataBase"       Then  
                        objFSO.CopyFolder   source_Folder&"\"&objFolder.Name,aim_Folder&"\"&objFolder.Name,OverWriteFiles  
                  End   If  
                End   If  
               
          Next  
  End   Sub  
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
           
  Top

7 楼zhongkeruanjian(编程亮子)回复于 2006-03-10 10:24:46 得分 0

这是我以前给远程机器上传文件的方法。比如文件对比等,你看看,可能有帮助。Top

8 楼lovefootball(蟑螂(生活就是扯淡--做人要放低姿态))回复于 2006-03-10 10:29:56 得分 50

用wmi不是很好,有很多限制  
  还是用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;  
  }Top

9 楼lovefootball(蟑螂(生活就是扯淡--做人要放低姿态))回复于 2006-03-10 10:34:56 得分 0

连接成功后,用File.Copy就可以了Top

10 楼sfanpu(Erick Shuai)回复于 2006-03-10 14:18:01 得分 0

谢谢各位的解答,我现在已经有怎么做的概念了。  
   
  to   lovefootball:File.Copy能够把文件Copy到远程计算机上吗?怎么指定在远程计算机上的路径?Top

11 楼csShooter(Sharp Shooter)回复于 2006-03-10 14:24:33 得分 0

markTop

12 楼lovefootball(蟑螂(生活就是扯淡--做人要放低姿态))回复于 2006-03-13 12:29:51 得分 0

如果你连接远程计算机成功后  
  你就可以像操作本地机器一样了  
  只是路径前要加上远程机器的IPTop

13 楼lovefootball(蟑螂(生活就是扯淡--做人要放低姿态))回复于 2006-03-13 12:34:03 得分 0

File.Copy(sourceFileName   ,   destFileName   ,   overwrite   );  
  sourceFileName    
  要复制的文件。    
  destFileName    
  目标文件的名称。不能是目录。    
  overwrite    
  如果可以改写目标文件,则为   true;否则为   false。    
  其中destFileName的值,就是远程机器IP加盘符加文件夹....Top

14 楼zhzuo(秋枫)回复于 2006-03-13 12:42:43 得分 10

先使用Wmi开通连接,再Copy文件  
  下面是sdk中的例子。  
  using   System;  
  using   System.Management;  
   
  //   This   example   demonstrates   how   to   connect   to   remote   machine  
  //   using   supplied   credentials.  
  class   Sample_ConnectionOptions  
  {  
          public   static   int   Main(string[]   args)   {  
                  ConnectionOptions   options   =   new   ConnectionOptions();  
                  options.Username   =   UserName;   //could   be   in   domain\user   format  
                  options.Password   =   SecurelyStoredPassword;  
                  ManagementScope   scope   =   new   ManagementScope(  
                          "\\\\servername\\root\\cimv2",  
                          options);  
                  try   {  
                          scope.Connect();  
                          ManagementObject   disk   =   new   ManagementObject(  
                                  scope,  
                                  new   ManagementPath("Win32_logicaldisk='c:'"),  
                                  null);  
                          disk.Get();  
                  }  
                  catch   (Exception   e)   {  
                          Console.WriteLine("Failed   to   connect:   "   +   e.Message);  
                  }  
                  return   0;  
          }  
  }  
  Top

15 楼pgy8288(Just Coding)回复于 2006-03-17 09:40:39 得分 0

真是不知者无畏  
  呵呵  
  回答的驴头不对马嘴  
  谢谢楼主给分  
  哈哈Top

相关问题

  • 如何使C:盘,D盘的根目录不共享?
  • 在C、D盘根目录下有文件explore.exe。这是什么病毒。
  • 请问在C#中如何取得当前本应用程序的根目录
  • RENAME()函数不支持在不同的根目录下进行COPY吗?
  • 请问mysql是不是可以装在非c盘根目录下,比如f:\,我的c:只剩9M了!
  • 请教怎么用c++将c盘下的某个文件夹拷贝到d盘根目录下
  • 快来拿分!!!★请问扫描c盘根目录下的所有文件,怎么在vc++中实现?★
  • 我的win98启动时自动打开C盘根目录窗口,我不想这样。
  • 奇怪了,C盘根目录下不能建立一个名为 con 的文件
  • 我的C盘根目录下为什么经常会自己创建一个叫My Music的文件夹?

关键词

  • 远程
  • 文件
  • 计算机
  • source
  • 连接
  • objfolder
  • objfile
  • objfso
  • aimfile
  • folder

得分解答快速导航

  • 帖主:sfanpu
  • jiangsheng
  • pgy8288
  • zhongkeruanjian
  • lovefootball
  • zhzuo

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo