设为首页 收藏本站
查看: 1244|回复: 0

[经验分享] 修改域名惹的祸

[复制链接]

尚未签到

发表于 2017-6-21 19:38:43 | 显示全部楼层 |阅读模式
  做了一件很脑残的事,神不知鬼不觉,我将一台存储重要数据的服务器的域名修改了,该服务器是在Hyper-V中创建的VM,修改VM的域名之后,部署在该VM上SQL Server实例就没有权限访问了,通常的管理员账户也访问不了,本地的Administrator账户没有密码,心想,这下完了,捅了这么大的娄子,服务器上1TB的数据怎么搞?虽然,数据最终被成功转移,但是,过程十分曲折,禁不住感慨:当年欠的技术,必须一点点学回来。情怀不说了,上干货。
  VM上安装的操作系统是Windows Server 2012 R2 Data Center,使用我的管理员账户登录,登陆失败。在登录界面弹出警告消息: “The security database on the server does not have a computer account for this workstation trust relationship”。有这么一堵墙横亘在我面前,就是项目组不记得本地管理员账户 Administrator 的密码。
DSC0000.png

  既然VM不能访问,而我又必须登录到VM,心里有点虚,Windows Server的安全系统是纸老虎吗?不管怎么样,不能不战而被吓倒,首先要解决的问题是如何破解本地管理员Administrator的密码。VM上存储的数据不能被破坏,只能通过Windows镜像文件尝试修改操作系统。如何重置本地管理员的密码?感谢老黄的协助。
  step1,修改VM的Firmware,从DVD驱动器加载Windows的镜像文件
DSC0001.png

  step2,当出现以下界面时,按下任意键,从DVD驱动器加载镜像文件
DSC0002.png

  step3,点击“Repair your computer”,利用镜像文件修复计算机
DSC0003.png

  step4,选择Troubleshoot,在这里能够使用高级工具修复操作系统
DSC0004.png

  step5,从高级选项中,选择命令行(Command Prompt)进行高级故障排除操作
DSC0005.png

  step6,进入命令行界面,修改VM开机加载的辅助程序
  进入到System32目录下,先将辅助程序Utilman重命名为Utilman_bak,然后将cmd复制为Utilman。
  百度百科:utilman.exe是一个系统进程,为Windows辅助工具管理器程序。



C:
cd \Windows\System32
ren Utilman.exe Utilman_bak.exe
copy cmd.exe  Utilman.exe
  这样做的原理是:修改VM开机加载的辅助程序,在Windows登录界面上有轻松访问(Ease of access)辅助工具。当我们从登录界面点击轻松访问时,Windows会启动命令行工具(cmd),此时,虽然我们没有方法登录到Windows Server中,但是,我们拥有系统的最高权限,通过cmd,我们可以进行高级的故障排除,或者你想干的任何事。
DSC0006.png

  step7,重启VM,重置Administrator的密码
  上述设置完成之后,重启VM,正常进入到登录界面,点击登录界面的轻松访问(Ease of access)辅助工具,
DSC0007.png

  由于辅助工具的执行文件被替换为cmd,Windows会启动命令行工具,在命令行工具中,通过net user命令,重置Administrator的密码
DSC0008.png

  step8,使用Administrator的新密码登录VM
DSC0009.png

  终于,我还是成功登录VM了,在第一时间打开SSMS,登录SQL Server的默认实例 VMxxx,发现登录不上,SQL Server抛出以下错误消息:
DSC00010.png

  认真查看该错误消息,当建立到SQL Server的连接时,出现网络相关或指定实例的错误,SQL Server实例找不到或者不可访问。在域中,虽然使用本地管理员账户登录默认实例,但是,由于域名服务器的存在,仍然会出现本地管理员登录不了本地的SQL Server默认实例,根本原因是建立的网络连接路由不到指定的SQL Server的实例名。在本机上,我们可以不通过网络路由器,直接使用localhost,或 点(.)登录本机 ,经过几番曲折,SSMS登录成功,终于打开数据库,喜极而泣。
  但是,这不是真实的情况,实际上,在登录SQL Server失败时,我走了另外一条曲折的路。因为,当时的我有点慌张,误以为是权限的问题,过程虽然曲折,但是,还是挺有趣,用到DAC( Dedicated Administrator Connection,专用管理员连接)为本机增加数据库的管理员权限。
  step1,在命令行工具中关闭SQL Server服务



net stop MSSQLServer
DSC00011.png

  step2,通过单用户模式启动SQL Server服务,只允许sqlcmd登录SQL Server实例



net start MSSQLServer -msqlcmd
DSC00012.png

  -msqlcmd:该参数指定以单用户模式打开MSSQLServer服务,只允许sqlcmd程序登录该服务
  step3,使用DAC连接到SQL Server实例



sqlcmd -A
DSC00013.png

  -A:Logs in to SQL Server with a Dedicated Administrator Connection (DAC). This kind of connection is used to troubleshoot a server.
  step4,将本地管理员授予sysadmin角色,如果本地管理员不是SQL Server实例的Login,需要新建Windows域登录名



create login [VMxxx\Administrator]
from windows
with default_database=master;
go
alter server role sysadmin
add member [VMxxx\Administrator]
go
DSC00014.png

  授予Administrator数据库管理员的权限之后,使用SQL Server的默认实例名依然登录不上,后来,静下心来,仔细看了看登录失败的错误信息,才恍然大悟,特写一篇随笔,记录一下自己无意“放火”和曲折“救火”的经历。在这里很感谢项目经理麦扣的包容,老黄的协助,谢谢!
  参考文档:
  破解windows系统开机登录密码的一种方法
  SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法
  sqlcmd Utility

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-386481-1-1.html 上篇帖子: 虚拟化技术概览 下篇帖子: 第二天学习:前端开发技术概述
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表