如何在远程计算机上使用wmic复制networking文件?

我是一个域的pipe理员和即时通讯尝试运行一个wmic脚本从另一台远程pc上复制一个远程pc上的文件。

我的命令:

WMIC /NODE:@"C:\compList.txt" PROCESS CALL Create "xcopy \\networkPC\file.exe C:\" 

它不复制compList.txt上列出的计算机上的file.exe,我知道这不是一个privilage问题,因为我试图运行一个简单的过程

 cmd /c echo 1>C:\1.txt 

并在远程计算机上创build了1.txt。

可能是什么问题呢?

是否有可能启用阻止WMI调用的Windows防火墙(或第三方防火墙)? 端口135需要打开WMI才能正常工作。 有关通过防火墙连接WMI的详细信息,请参阅本文 。

编辑:

我做了一些更深入的挖掘 – 你的问题是WMIC如何使用你的凭证,当它试图连接到networkPC。 您正在使用默认模拟模式“Impersonate”运行WMIC – 这允许WMIC在本地计算机(compList.txt中的计算机)上模拟您的帐户 – 但是当它尝试连接到远程计算机(networkPC)时,它不能模拟你,所以它连接为NT AUTHORITY \ ANONYMOUS LOGON。

我认为你在这里有两个可能的解决scheme:

  1. 允许networkPC上的共享拥有对NT AUTHORITY \ ANONYMOUS LOGON的读取访问权限 – 这听起来有些复杂 – 您必须授予匿名login共享和文件级权限,并允许它激活dcomcfg中的WMI
  2. 设置你的WMIC调用来使用委托模拟。 这要求您在AD中设置用户和计算机帐户,并使用“ 受信任的授权 ”权限。 然后你可以用/IMPLEVEL:Delegate调用wmic,但是这样会产生一个新问题,因为你还需要传入/AUTHORITY:"kerberos:targetdomain\targetcomputer"参数 – 目标计算机是compList的计算机名称。 txt – 这意味着你需要把你的wmic调用放在compList.txt中的计算机周围,而不是使用/NODE:@compList.txt

我得到这个错误的一个方法是使用runas 。 如果您有权访问命令行,请使用/runas:<domain>\<domainadmin> cmd.exe 。 您将获得第二个命令行,该命令行使用域pipe理员凭据运行。 (注意:要在Windows 7上执行,您可能需要提升UAC。)

一旦你有你的域pipe理员命令行,继续与WMIC。

 C:\\>**runas /user:dom\domadmin cmd.exe** 

(将要求域pipe理员密码,并打开一个新的命令提示符)

 C:\\>**wmic /node:@c:\list.txt** 

然后

 wmic:root\cli>**call create process "xcopy \\\server\file C:\folder\file"** 

应该复制过来。