当前位置: 首页 > news >正文

vSphere 克隆 Windows 虚拟机后无法访问文件共享的解决方案

前言

在 vSphere 上,我有一台原本正常运行的 Windows Server 虚拟机 A,作为文件服务器(提供文件共享服务)。

由于 A 服务器 出现了一些问题,我决定 复制 A 服务器的 vmdk 数据盘,然后克隆出一台新的虚拟机 B 服务器,希望能创建一个完全相同的环境。

问题描述

当 A 关闭、B 开启后,我将 B 配置为与 A 相同的 IP 地址,发现 B 无法进行文件共享访问(即无法通过 IP 访问共享文件),但 ping 是能通的

经过调查,发现问题出在 Windows SID(安全标识符) 上。

SID 是什么?

SID(Security Identifier,安全标识符)是 Windows 用于唯一标识用户、组和计算机对象的一串字符串。每台 Windows 设备都会有一个唯一的计算机 SID,每个本地用户也有自己的 SID。

在克隆一台 Windows 设备时,若不进行特殊处理,克隆后的机器将继承原有机器的 SID,这会导致系统在进行权限校验时发生冲突。例如:

  • Windows 共享权限是基于 SID 进行管理的,即使两台机器的 IP 和计算机名相同,但由于 SID 重复,导致访问受阻。
  • 在 AD 域环境下,计算机 SID 需要唯一,否则可能出现身份认证问题。

假设 A 机器的管理员账户 Administrator 具有 SID S-1-5-21-1234567890-1000,克隆出的 B 机器的管理员账户 Administrator 也会有相同的 SID,但 Windows 识别它们是同一用户,导致权限异常。

解决方案 —— 使用 Sysprep 重新生成 SID

微软提供了 Sysprep(系统准备工具),可以用来重置 Windows 计算机的 SID、计算机名等信息,使其成为一个新的独立实例。

操作步骤

  1. 在 B 机器上运行 Sysprep
  • 使用 wmic 命令查看 SID:

    wmic useraccount get name,sid
    
  • 运行 Sysprep
    cmd 运行:

    C:\Windows\System32\Sysprep\sysprep.exe
    

    系统清理操作(A) → 进入系统全新体验(OOBE)
    关机选项(S) → 重启启动
    在这里插入图片描述

  • 重启检查
    使用 wmic 命令再查看 SID:

    wmic useraccount get name,sid
    

    这里会发现出来的 SID 信息和之前的不一致,PC名也不一致
    若发现重启后 Windows 操作检索或者命令等有些异常,再手动重启一次即可解决

  1. 修改 IP 地址并测试

    重新设置 B 机器的 IP 地址为 A 机器原来的 IP 地址。
    使用其他设备文件访问改 IP 测试(成功)。

  2. 加入 AD 域

    由于计算机 SID 已更新,B 现在可以重新加入 Windows AD 域,并修改计算机名为 A 的原名,使其在网络环境中与 A 无缝替换。

结果验证

  • 运行 whoami /userwmic useraccount get name,sid 发现 SID 已更改
  • 重新设置与 A 相同的 IP 地址后,B 机器可以正常访问文件共享
  • 加入 AD 域并改回原计算机名后,可以 通过域名访问文件共享

总结

克隆 Windows 虚拟机后,由于 SID 相同,可能会导致文件共享访问异常、身份认证问题等。解决方案是 使用 Sysprep 重新生成计算机 SID,然后再配置 IP 地址、计算机名,并加入 AD 域,即可恢复正常使用。

在 vSphere 等虚拟化环境下,克隆 Windows 虚拟机时,建议:

  • 尽量使用模板(Template) 部署新机器,避免 SID 冲突。
  • 如果手动克隆,需要运行 Sysprep 处理,确保新机器拥有唯一 SID。

这样可以避免后续的网络访问和身份认证问题,提高系统的稳定性和可维护性。

Linux 就不会出这个问题!!!

相关文章:

  • Maven | 站在初学者的角度配置
  • vue3单独引用element-plus的Infinite Scroll无限滚动;vue3自定义指令
  • 一、Redis简介篇
  • 【操作系统安全】任务5:Windows 文件与文件系统
  • 解锁淘宝分类宝藏:深入探索“cat_get”接口的力量
  • vue3 elementUi table自由渲染组件
  • 使用computed计算属性实现购物车勾选
  • 【leetcode hot 100 105】从前序与中序遍历序列构造二叉树
  • 【从零开始】Air780EPM的LuatOS二次开发——OneWire协议调试注意事项!
  • C++之list类及模拟实现
  • 《C#上位机开发从门外到门内》3-5:基于FastAPI的Web上位机系统
  • 【NLP】 1. 文本在计算机里的表示: One-Hot, sparse vector, bag of words
  • MCU的应用场景:从智能家居到工业控制
  • 【Go】无法访问 proxy.golang.org 进行依赖下载
  • spring bean的生命周期和循环依赖
  • 量子信息理论入门:探索量子世界的奇妙信息处理方式
  • .gitignore 文件用于 Git 应忽略的文件夹的格式
  • 详细讲一下 Webpack 主要生命周期钩子流程(重难点)
  • SpringBoot美发门店管理系统开发与设计
  • 网页制作18-Javascipt图像特效の图片闪烁
  • 甘肃公布校园食品安全专项整治案例,有食堂涉腐败变质食物
  • 特朗普称将禁止伊朗石油买家与美国做生意
  • 解放日报:人形机器人新赛道正积蓄澎湃动能
  • 大学2025丨对话深大人工智能学院负责人李坚强:产学研生态比“造天才”更重要
  • 马上评|扩大高速免费救援范围,打消出行后顾之忧
  • 上海市十六届人大常委会第二十一次会议表决通过有关人事任免事项