在交付的实验环境中对许可证过期问题的虚拟机关机问题的解决方法

简介:

最近发现在我们的运行的试验系统中出现了某个Windows Server 2008 R2的实验环境,由于许可证已经过了过期时间,而且交付的试验系统又在一个隔离网段,因此无法通过公司内置的KMS服务器激活,造成了实验环境的大问题!这个过期的虚拟服务器,会每隔1个小时就关机一次,简直让我头大的很;面对这个问题,学员们普遍表示了理解和不爽,当然设计了这个实验环境的我自然感到火大!

 

有没有好的方法让我这个用于实验目的的环境永不过期呢?考虑到我们实验室的机制是对于实验环境是每次都刷新到快照的状态,但是虚拟机的时间并没有锁定,因此每次虚拟机的时间都会随着系统的时间shift,因此过期是不可避免的,除非我们刻意的修改托管虚拟机的物理机时间,但这不是长久之计;如果可以通过 slmgr /rearm的方式将会给系统延期10天,请注意刷新了快照虽然系统时间会变,但是记录在注册表中的rearm延期的次数(默认是3次)是不会改变的,这就给我们每次刷新和交付的试验系统一个无限rearm次数的可能!而且我们的实验环境基本每两天就会刷新一次,因此不会再次出现超过rearm的时间的问题。好了,有了思路剩下的就比较好解决了。

 

首先,我想到的方法是利用cmd创建一个批命令,简单如下:

REM ---判断是否Rearm过,如果没有则进入rearm过程,如果有则结束

if not exist c:\Scripts\rearm.tmp call :create
goto end

 

:create

REM ---创建一个标志位(首次rearm过程会创建一个文件),保证rearm后在试验期间不会陷入再次重启(因为已经rearm过)

echo rearm >> c:\Scripts\rearm.tmp

REM ---通过Start调用后台rearm动作,因为rearm的过程是交互的而在后台运行时无法进行交互因此设置为后台启动
start slmgr /rearm

REM ---经过试验这个步骤很重要,首先rearm需要重启才能生效,如果不设置后台启动,shutdown会等待rearm交互结束之后才进行,但后台启动的rearm是没有交互过程的,因此我们这里设置的是shutdown会和rearm的动作并行在后台运行,通过调整发现在我们的50个虚拟机的环境下,设置延迟180秒可以确保所有rearm的动作完成并且重启延期成功。经过测试发现,如果时间过短,并且物理机负载较重的情况下,可能会出现rearm没有做完已经重启虚拟机造成系统没有延期的问题,因此请确保给rearm足够的时间;)
start shutdown /r /f /t 180
goto:eof

 

:end

上述脚本完成了对系统的rearm工作,接下来还需要在系统的计划任务中配置每次启动都进行rearm判断的cmd脚本逻辑,大致过程如下:

  1. 启用计划任务管理

  2. 创建一个基本任务

     

  3. 对于基本任务设置名称,不管用户是否登录都要运行,一定要确保选择了使用最高权限运行,然后勾选隐藏

  4. 设置触发器条件为,每次启动时延迟30秒运行

     

  5. 在操作中选择之前创建的rearm批命令

  6. 其他设置保持默认,输入管理员口令后保存这个任务

     

OK,你现在和我一样在测试环境中有了一个可以延期的系统,重启确认一下系统已经延期。

smlgr /dlv










本文转自 翟老猫 51CTO博客,原文链接:http://blog.51cto.com/3387405/1287933,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
Ubuntu
虚拟机Ubuntu连接不了网络的解决方法
虚拟机Ubuntu连接不了网络的解决方法
|
25天前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
20 2
|
3月前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
|
2月前
|
虚拟化
虚拟机系统Win7与主机之间不能实现拖放的问题及解决方法
虚拟机系统Win7与主机之间不能实现拖放的问题及解决方法
|
3月前
|
机器学习/深度学习 Ubuntu Linux
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
|
3月前
|
API 网络架构 开发者
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
|
3月前
|
安全 Windows
【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
|
3月前
|
安全 网络安全
【Azure 环境】当本地网络通过ER专线与Azure云上多个虚拟网络打通,如何通过特定的网络策略来限制本地部分网段访问云上虚拟机22端口?
【Azure 环境】当本地网络通过ER专线与Azure云上多个虚拟网络打通,如何通过特定的网络策略来限制本地部分网段访问云上虚拟机22端口?
|
3月前
|
存储 API 开发工具
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
|
4月前
|
Linux
部署09--虚拟机快照,我们无法避免损坏Linux操作系统 ,如果重新装一下就太过麻烦,推荐在关机下制作快照,关机制作效率好,机房要靠近地址,动不动崩溃
部署09--虚拟机快照,我们无法避免损坏Linux操作系统 ,如果重新装一下就太过麻烦,推荐在关机下制作快照,关机制作效率好,机房要靠近地址,动不动崩溃