我尝试从服务器运行以下命令,但最终没有成功。我尝试做的是将文件从服务器的 c$ 复制到特定客户端。
10.10.10.10(服务器)
10.10.10.100(客户端)
不工作
wmic /node:10.10.10.100 /USER:"[email protected]" /PASSWORD:"ppaass" process call create "XCOPY /Y \\10.10.10.10\c$\script\a.txt c:\a.txt*"
命令提示符中的结果
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ProcessId = 1132;
ReturnValue = 0;
};
WORKING 命令
wmic /node:10.10.10.100 /USER:"[email protected]" /PASSWORD:"ppaass" process call create "cmd.exe /c 'type c:\a.txt > c:\b.txt"
第一个命令可能有什么错误?
答案1
非工作版本的“结果”实际上告诉您事情确实有效(返回代码 0 表示“成功”)。但它只告诉您“进程调用创建”调用有效。
报告说它正在运行您的进程,因此很可能您调用的命令(XCopy)由于某种原因失败了。
我的猜测是,用于在客户端上启动该过程的用户无权访问c$
服务器上的管理员共享 ()。或者是因为您尝试将文件复制到 C: 的根目录中,这在 XP 以上的 Windows 版本中通常是不允许的。
要调试,请以您尝试用来启动命令的用户身份登录客户端,在命令提示符中手动运行它,并记录结果/错误消息。
和/或扩展您尝试通过 WMI 触发的命令,以包括将 StdOut 和 StdErr 输出流重定向到文件。例如:
XCOPY /Y \\10.10.10.10\c$\script\a.txt c:\a.txt 1> c:\output.txt 2>&1
然后检查的output.txt
内容。
(再次强调,与本例中所写不同,尽量避免使用 C: 的根目录来保存文件,创建文件夹并将内容放在那里)。