在上次的文章中, 提到一个虚拟机的image在多次使用的时候, 会遇到很多奇怪的问题. 这次我就又遇到了一个.
我使用一个Windows Server 2008 R2的image, 复制了六次, 即做了六台虚拟机, 都join到同一个domain中.
在操作一台非域控虚拟机时, 向一个本地用户组添加域用户的时候, 发现报错如下:
错误信息为: A member could not be added to or removed from the local group because the member does not exist.
超干净的系统, 用户名都正常, 怎么可能会出现这种状况? 原因可能是这样的, 因为这些系统都是同一个image做出来的, 它们的sid都一样. 在添加用户组的时候, 这台机器用sid作为标识去联系域控, 可是自己的sid跟域控的一样, 所以就找自己, 结果找不到, 报错.
多个虚拟机如果sid一样, 奇奇怪怪的问题会特别多, 比如, 使用remote desktop的时候, 域帐号就无法登陆. 再比如, Exchange是无法安装的, 报错找不到域控. 所以, 在setup虚拟机环境的时候, 如果使用同一个image(vhd), 一定要注意把sid换掉. 否则, 问题多多, 难以排查, 后患无穷.
解决方案
==========
newsid已经退役了, 而且newsid在Windows Server 2008 R2上不能使用.
需要使用系统自带的一个叫做sysprep的工具.
按照下图的设置运行, 重启即可.
注意:
运行过sysprep之后, join过domain的信息会丢失, 机器名会丢失. 所以, 非域控机器需要先退域, 再运行sysprep. 域控则需要先depromo, 变为普通机器, 再sysprep.