首页 > 解决方案 > 如何通过命令删除远程机器中临时文件夹的内容

问题描述

我有一个要求,我需要删除远程 Windows 机器上的临时文件夹的内容。我试过下面的 wmic 命令来删除

WMIC /节点:. .** /user:xxxx /password:xxxx path cim_datafile WHERE "path='%Winddir%\temp*.tmp' AND Extension ='tmp'" 删除**

但它会抛出一个错误说

错误:描述 = RPC 服务器不可用。

请建议我一种删除远程计算机上临时文件夹内容的方法。

标签: windowswmic

解决方案


最简单的方法 - 如果您没有严格强制使用 WMI,您可以使用 psexec 来做到这一点:

PsExec.exe \\<computer> cmd /c "rmdir /s /q %windir%\temp\"

或者,如果您没有登录域管理员或全局工作站管理员帐户 -

PsExec.exe -u <user> -p <password> \\<computer> cmd /c "rmdir /s /q %windir%\temp\"

如果不应该完全删除该文件夹,因为 Windows 会保持一些文件打开并锁定在其中,但任何非只读或锁定的文件都将被删除,包括文件和文件夹。

然后,要使用计算机列表执行此操作,只需使用这样的 cmd 文件(list.txt 仅包含计算机名称/ips,没有 \:

for /F %%s in (list.txt) do (
    echo %%s
    start "" /min PsExec.exe \\%%s cmd /c "rmdir /s /q %windir%\temp\"
)

启动命令使所有 psexec 进程并行运行并最小化,因此您不必等待每台计算机完成后再启动另一台计算机

psexec.exe 是 M. Russinovich 的 sysinternals 包的一部分,我想留下一个直接链接,但不知道是否允许。我认为如果您有权访问文件共享和远程计算机管理(当然还有管理员权限),它应该能够连接到远程电脑


推荐阅读