psexec怎么远程连接虚拟机?,连接失败怎么办?

psexec 远程连接 虚拟机操作步骤的核心答案是:下载微软 Sysinternals 工具包中的 PsExec,在命令行中执行 psexec \目标IP -u 用户名 -p 密码 cmd 即可进入虚拟机命令行界面,但前提是双方网络互通、445 端口可达且具备管理员权限。 这个答案听起来简单,实际部署时却常碰到虚拟机防火墙拦截、账号权限不足、网络模式不通等绊脚石,本文就按实操顺序,把从准备到排错的全过程拆给你看。

psexec 远程连接 虚拟机操作步骤:准备工作要做足

很多教程上来就让你敲命令,结果报错一个接一个,psexec 的原理是在目标机器上临时安装并启动一个 Windows 服务,再通过该服务执行指定命令,这意味着你对目标虚拟机必须有管理员级权限,且网络层面要放行 RPC 和 SMB 通信。

445端口通信-------psexec64工具和net use
加载中
445端口通信-------psexec64工具和net use

第一步:下载 PsTools 并解压到固定目录

  • 访问微软官网的 Sysinternals 套件页面(也就是 Sysinternals 主站的 PsTools 下载区),下载 PsTools.zip 压缩包。
  • 解压到你喜欢的目录,C:PsTools,里面包含 psexec.exe、pskill.exe、pslist.exe 等几十个小工具。
  • 为了方便在任何路径下直接调用,建议把该目录加入系统 Path 环境变量,操作路径:右键“此电脑”→ 属性 → 高级系统设置 → 环境变量 → 找到 Path 变量 → 编辑 → 新建 → 填入 C:PsTools

第二步:确认虚拟机 IP 和网络模式

psexec 通过 IP 地址访问目标虚拟机,所以先明确虚拟机的 IP:

  • 桥接模式:虚拟机与宿主机在同一物理网段,宿主机直接 ping 虚拟机 IP 即可。
  • NAT 模式:默认情况下,宿主机可以访问虚拟机,但其他物理机无法直接访问,psexec 的发起方是宿主机,NAT 模式通常可行;如果发起方是另一台物理机,则需要端口转发或改用桥接模式。
  • 仅主机模式:只允许宿主机与虚拟机通信,跨机器远程连接基本没戏。

ipconfig 在虚拟机里查清楚 IP 后,回到宿主机执行 ping 虚拟机IP,不通就去查虚拟网络编辑器。

第三步:开放防火墙和共享端口

psexec 依赖 TCP 445 端口(SMB)Windows 服务管理相关的 RPC 端口,虚拟机如果是 Windows 系统,请重点检查以下两项设置:

  • 防火墙:控制面板 → Windows Defender 防火墙 → 允许应用或功能通过防火墙 → 勾选“文件和打印机共享”和“Windows Management Instrumentation (WMI)”。
  • 文件共享:在虚拟机中运行 net share 查看 ADMIN$ 共享是否存在,如果提示没有共享,手动启动 Server 服务:在服务管理器中找到 Server,设为自动并启动。

psexec 怎么用:从单条命令到交互式 Shell

准备就绪后,正式开始远程连接,以下命令均在发起方的命令提示符或 PowerShell 中执行。

基础命令格式与真实例子

psexec 的标准语法是:

psexec \目标IP -u 账号 -p 密码 要执行的命令

举两个最常见的场景:

  1. 远程执行一条命令,比如查看虚拟机的网络配置:

    psexec怎么远程连接虚拟机?,连接失败怎么办?

    psexec \192.168.1.100 -u administrator -p P@ssw0rd ipconfig

    输出会直接返回到你的终端里,相当于把虚拟机当成一台本地机器用。

  2. 远程重启虚拟机:

    psexec \192.168.1.100 -u administrator -p P@ssw0rd shutdown /r /t 0

进入交互式命令行,像坐在虚拟机前一样操作

如果想连续执行多条命令,或者想直接操作虚拟机上的 cmd,用不带命令参数的写法:

psexec \192.168.1.100 -u administrator -p P@ssw0rd cmd

执行后你会发现命令提示符前缀变成了 C:Windowssystem32> 但其实是远程虚拟机的路径,此模式下,你可以随意敲击 ipconfig、dir、tasklist 等命令,所有操作都在虚拟机内部执行。

把本地文件推到虚拟机再执行

psexec 还支持 -c 参数,把本地文件复制到远程虚拟机后再运行,这个用法在批量部署脚本时相当方便:

psexec \192.168.1.100 -u administrator -p P@ssw0rd -c C:Toolscheck.bat

该命令会把 check.bat 推送到虚拟机的系统目录下,然后远程执行它,执行完临时文件默认保留在远端。

以 SYSTEM 权限运行

有些命令需要更高权限,比如操作注册表安全项或服务配置,加上 -s 参数,就能让 psexec 以 SYSTEM 账户在远程虚拟机中启动进程:

psexec \192.168.1.100 -u administrator -p P@ssw0rd -s cmd

SYSTEM 是 Windows 中的顶级账户,比管理员权限还高,因此务必只在可信环境下使用。

psexec 连接不上 虚拟机?先从这五个角度排查

实际使用中,报错五花八门,我把最常见的几类问题整理成一张排查表,看不懂英文报错也能对号入座:

报错信息 大概率原因 解决方向
Access is denied 账号权限不足或 UAC 远程限制 确认虚拟机不是仅来宾账户,关闭远程 UAC 过滤,或用本地管理员账号
Network path not found 网络不通或 SMB 服务未启动 ping 测试、确认桥接模式、启动 Server 服务
The RPC server is unavailable 防火墙拦截 RPC 端口 放行 WMI 和 RPC 动态端口,或直接关闭虚拟机防火墙(临时测试)
The filename, directory name, or volume label syntax is incorrect 命令参数写错 检查反斜杠和引号,虚拟光驱目录路径注意转义
登录失败:用户账户限制 账号被锁定、密码过期或空密码策略 在虚拟机中重设密码,或运行 gpedit.msc 修改账户策略

错误 5 拒绝访问是重灾区

如果你用的是 Windows 10/11 专业版工作站或 Windows Server 2016 以上系统,会发现 psexec 即使密码正确也报 Access is denied,这大概率是 UAC 的远程限制在捣鬼:微软从 Vista 开始引入本地账户的 UAC 过滤机制,使得远程登录的管理员令牌被自动降级成普通用户权限。

解决办法有两种:

psexec怎么远程连接虚拟机?,连接失败怎么办?

  • 在目标虚拟机中打开注册表编辑器,跳转到 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem,新建一个 DWORD(32 位)值,名为 LocalAccountTokenFilterPolicy,数值数据填 1,重启机器后生效。
  • 直接使用虚拟机内置的 Administrator 账户(不是你自己创建的管理员用户),因为内置 Administrator 默认不受到该策略限制。

测试阶段图省事,可以临时关闭防火墙

如果你只是在实验环境里验证,不想折腾防火墙规则,可以临时在虚拟机里执行:

netsh advfirewall set allprofiles state off

把虚拟机的公共、专用和域网络防火墙全部关掉,之后 psexec 基本畅通无阻,但生产环境千万别这样操作,测试完记得重新开启。

psexec 在虚拟机和物理机上有哪些使用差异

不少第一次用 psexec 连接虚拟机的朋友会被同一种现象困住:同一套命令连物理机一次成功,连虚拟机就各种超时,这是虚拟化环境带来的额外变量。

NAT 模式下,外网物理机访问不到虚拟机

VMware Workstation 或 VirtualBox 默认的 NAT 模式,虚拟机位于一个私有子网中,对外表现为宿主机的网络地址,在这种模式下,宿主机可以主动连接虚拟机,但局域网其他电脑无法直接访问,如果你要从自己的办公电脑上 psexec 到一台公司服务器上的虚拟机,得先确认虚拟机的网络模式是桥接模式,且分配了和宿主机同网段的 IP。

快照回滚之后,服务状态可能不一致

psexec 远程连接时会在虚拟机中创建 PSEXESVC 服务,如果虚拟机的防火墙当时是关闭的,你连接并创建服务后再做快照,一旦回滚到该快照,服务状态与目标机网络配置可能出现奇怪的不一致,比如回滚后 admin$ 共享存在,但 psexec 的临时服务记录残留。建议在干净的网络配置状态下才做快照,否则排查 NLA 错误会浪费大量时间。

虚拟机之间的互联,权限验证更严格

当你从一台虚拟机 psexec 到另一台虚拟机时,除了账号密码之外,Workstation 服务的运行账户也得注意,如果发起方虚拟机没有启动 Workstation 服务,无法建立 SMB 会话,连接直接失败,确认方式:运行 services.msc,找到 Workstation,启动类型设为“自动”。

远程复制文件:psexec 不是唯一办法

虽然 psexec 可以用 -c 把文件推送到虚拟机,但如果你需要在宿主机和虚拟机之间传文件,更推荐 VMware Tools 的共享文件夹功能,或者直接用 copy 命令走 SMB 共享,psexec 的文件复制功能设计上不对大文件做断点续传,传输效率也比较一般。

安全警告:psexec 是运维利器,也是攻击跳板

我用 psexec 管理过几十台实验虚拟机,这东西的效率确实比一次次打开 VMware 窗口强太多,但行业共识认为:psexec 的能力太接近黑客工具了,它本质上就是合法的远程代码执行工具,所以必须有使用纪律。

不要在命令行中明文写密码

-p P@ssw0rd 这种写法虽然在教程里最常见,但在真实环境中特别危险,你的命令历史记录、PowerShell 日志都会留下密码痕迹,安全的做法是:

psexec怎么远程连接虚拟机?,连接失败怎么办?

  • 先在命令行执行 net use \虚拟机IP /user:管理员账号 ,系统会提示你输入密码,输入时不回显。
  • 然后再执行 psexec \虚拟机IP 命令,psexec 会复用已建立的 SMB 会话,不再需要 -p 参数。

用完后立即清理远程服务

psexec 的工作机制是在远程虚拟机上创建 PSEXESVC 服务并启动一个 psexec.exe 进程,任务结束后,正常退出交互式 shell 会自动让远程服务停止并删除自身,但如果 psexec 进程被强制终止或发生故障,远程只读服务会残留下来,可以手动清理:

psexec \虚拟机IP -u 账号 -c psservice.exe stop PSEXESVC

虚拟机做安全测试时,慎用 psexec

如果你拿 psexec 来测试虚拟机是否能防住横向渗透,通常能轻松成功,但样本价值有限,由于 psexec 太出名,几乎所有终端安全软件都会重点监控 PSEXESVC 的创建,在真实攻防场景下反而不常见,验证内网安全性,用 Mimikatz、WMI 或 WinRM 来做测试更有参考意义。

常见问题解决:psexec 远程连接 虚拟机操作步骤里的三个坑

Q1:psexec 远程连接虚拟机时,提示“拒绝访问”,但账号密码明明是对的,为什么?

这基本是 UAC 远程限制在阻止你,目标虚拟机如果是 Windows 10/11、Windows Server 2016 及以上系统,默认情况下非内置 Administrator 的管理员账户通过 SMB 远程登录时,权限会被过滤为普通用户,解决方法:在目标虚拟机注册表 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem 中新建 LocalAccountTokenFilterPolicy 为 1,重启后重新尝试,如果仍失败,确认该账号没有设置“拒绝从网络访问这台计算机”的用户权限分配。

Q2:psexec 连接不上虚拟机,报“找不到网络路径”,是防火墙设置的问题吗?

不一定,虽然防火墙拦截 445 端口是最常见的原因,但虚拟机网络模式不对也会导致此问题,例如虚拟机处于 NAT 模式而发起方与虚拟机不在同一网段,直接 ping 不通,网络路径自然找不到,建议先按顺序检查:第一步在宿主机 ping 虚拟机 IP 确认基本连通;第二步在虚拟机内执行 net share 确认 ADMIN$ 共享存在;第三步查看“网络和共享中心”中是否开启了“网络发现”和“文件和打印机共享”,如果虚拟机是普通 Windows 10 系统,还得确保“网络配置文件”是“专用”而非“公用”。

Q3:psexec 远程命令执行后没有输出,或提示“找不到文件”,但虚拟机里确实能运行?

psexec 远程执行命令时,Windows 服务上下文环境与交互式用户不同,PATH 环境变量可能不包含你所执行文件所在目录,比如你要运行 Python 脚本,而 Python 装在某个用户目录下,远程会话里可能找不到解释器路径,解决办法是使用绝对路径执行:psexec \虚拟机IP -u 账号 -p 密码 C:Python39python.exe C:scripttest.py,psexec 默认把文件复制到虚拟机 C:WindowsSystem32 目录下,如果该目录不具备写入权限,需要先手动放置文件再用完整路径调用。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/621325.html

(0)
Debian系统怎么切换虚拟机?,虚拟机哪个软件好用
上一篇 2026年9月4日 05:08
下一篇 2026年4月17日 10:31

相关推荐

  • 二次开发是什么意思,二次开发需要掌握哪些技术

    Word二次开发的本质在于突破软件原生功能的边界,通过编程接口将Word转化为具备自动化处理能力的业务平台,这一过程的核心价值并非单纯的功能叠加,而是通过深度定制实现文档处理效率的质变,最终实现企业文档流转的自动化与智能化,核心结论:Word二次开发是企业实现文档自动化与知识资产化的关键技术路径,通过调用微软提……

    2026年3月25日
    10100
  • 如何共建普惠金融信贷智能风控平台?普惠金融信贷风控系统搭建

    【共建普惠金融信贷智能风控平台】在普惠金融快速发展的当下,信贷业务面临着海量并发请求、毫秒级决策响应以及严格的数据合规要求,传统的IT架构往往难以兼顾高可用性与成本控制,导致风控决策延迟高、误杀率高,直接影响了金融服务的覆盖率与用户体验,构建一个高效、稳定且具备自我进化能力的智能风控平台,已成为金融机构数字化转……

    2026年6月17日
    2000
  • 公安智能交通管理是什么?智能交通管理系统有哪些

    高可用服务器选型与实战效能深度测评在“智慧公安”与“城市大脑”建设的宏观背景下,智能交通管理系统(ITS)已不再是简单的视频监控存储,而是演变为集实时视频流分析、车牌识别、违章自动抓拍、交通流量预测及多源数据融合于一体的复杂分布式架构,对于承担7×24小时不间断运行、毫秒级响应要求的核心业务系统而言,底层基础设……

    2026年6月29日
    1200
  • 服务器分销虚拟主机分销设置怎么做?,有哪些步骤?

    服务器分销虚拟主机的关键不在于硬件,而在于分销设置——通过合理配置套餐、定价和自动化平台,你可以在数小时内启动一个虚拟主机分销业务,无需自建基础设施,虚拟主机分销设置步骤:从零搭建你的分销平台分销设置的核心是将上游资源转化为可售卖的标准化产品,整个过程涉及域名绑定、套餐定制和自动化对接,每一步都影响客户体验和你……

    2026年8月17日
    700
  • Java Spring Security权限控制怎么做?Spring Security自定义权限配置

    Java Spring Security权限控制在构建企业级Java应用时,安全架构往往是决定系统生死的关键环节,Spring Security作为Spring生态中最成熟、最广泛使用的安全框架,其核心优势在于提供了细粒度的访问控制机制,许多开发者在落地Spring Security时,常因配置复杂、理解偏差导……

    2026年7月10日
    17000
  • 微博开发 java怎么实现?Java微博接口开发教程

    微博开发 Java 的核心在于构建高并发、高可用的分布式架构,同时兼顾数据一致性与实时性,企业级微博系统并非简单的增删改查,而是对Java生态圈技术栈的深度整合,核心结论在于:必须采用微服务架构应对海量数据冲击,利用缓存集群解决高并发读写瓶颈,并通过消息队列实现系统解耦与异步处理,这不仅是技术选型的胜利,更是架……

    2026年3月22日
    12300
  • php开发实例教程哪里有?零基础入门项目实战详解

    PHP开发的核心在于构建安全、高效且可维护的应用逻辑,掌握从环境搭建到代码部署的完整流程,是成为一名合格开发者的必经之路,PHP凭借其庞大的开源社区和低门槛的语法特性,依然是Web开发领域的首选语言之一,通过实战案例驱动学习,能够最快地理解MVC设计模式与数据库交互的本质,构建高性能开发环境与基础架构任何PHP……

    2026年3月21日
    11700
  • 球拍开发流程是怎样的?专业球拍定制开发公司推荐

    球拍性能的极致发挥,依赖于材料力学、结构工程与制造工艺的深度融合,成功的球拍开发项目,本质上是在轻量化、高强度与击球手感之间寻找最优解的迭代过程,对于开发者而言,理解这一核心逻辑,是构建高性能产品的基石,不同于普通的工业制品,球拍作为直接传递人体力量与控制意图的载体,其开发流程必须建立在严谨的数据模型与实打体验……

    2026年3月7日
    12400
  • 云主机讨论有61个,云主机选购避坑指南

    关于云主机的讨论共有61个在云计算技术日益成熟的今天,选择一款性能稳定、性价比高的云主机已成为众多企业及个人开发者的核心诉求,社区内关于云主机的讨论热度持续攀升,共有61个高质量的技术探讨与实测反馈,涵盖了从底层架构到上层应用的全方位评测,本文将基于这些真实用户反馈与深度技术拆解,为您呈现一份详尽的服务器测评报……

    2026年6月10日
    3310
  • 服务器开发架构怎么设计?服务器开发架构有哪些主流方案

    高性能、高可用、可扩展——现代服务器开发架构的三大核心支柱在互联网应用爆发式增长的背景下,服务器开发架构已从单一服务模式演进为多层协同、弹性伸缩的智能系统,核心结论:一套成熟的服务器开发架构必须同时满足高并发处理能力、故障自动恢复能力与业务快速迭代能力,三者缺一不可,以下从技术选型、系统分层、容灾设计、运维保障……

    程序开发 2026年4月17日
    7400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注