前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >做Windows自定义镜像前配置开机后首次自动重启

做Windows自定义镜像前配置开机后首次自动重启

原创
作者头像
Windows技术交流
修改于 2025-05-20 08:17:23
修改于 2025-05-20 08:17:23
1050
举报
文章被收录于专栏:Windows技术交流Windows技术交流

发现个有意思的现象:

Windows公共镜像是sysprep的,买新机器或重装存量机器后,涉及开机后首次自动重启,用process explorer对pid为4的system进程查看加载的驱动,基本就2类:微软、云平台

而不涉及开机后首次重启的自定义镜像新购或重装后,用process explorer对pid为4的system进程查看加载的驱动,除过微软、云平台的,还有很多磁盘IO类驱动,厂商区别于前者,比如

发现新购或重装的系统,最好是完成初始化后重启一次来使用,至少磁盘IO相关驱动就顺溜了,这样健壮性比较好

以上发现启发我:对自定义镜像新购或重装,建议通过注册表实现开机后首次自动重启,方案如下:

步骤一、powershell配置开机自动登录(这里假设是默认的Administrator用户,注意具体化密码)

代码语言:txt
AI代码解释
复制
net user Administrator "具体化机器密码"
$UserName="Administrator"
$NewPassword="具体化机器密码"
([adsi]"WinNT://$ENV:COMPUTERNAME/$UserName").SetPassword("$NewPassword")
net accounts /lockoutthreshold:0
echo $? >>c:\test.txt

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /s|findstr "AutoAdminLogon DefaultUserName DefaultPassword DontDisplayLastUserName LastUsedUsername"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "DefaultUserName" /d "Administrator" /t REG_SZ /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "DefaultPassword" /d "具体化机器密码" /t REG_SZ /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "AutoAdminLogon" /d "1" /t REG_SZ /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DontDisplayLastUserName /t REG_SZ /d 0 /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "LastUsedUsername" /d "Administrator" /t REG_SZ /f
#reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /s|findstr "AutoAdminLogon DefaultUserName DefaultPassword DontDisplayLastUserName LastUsedUsername"
Start-Process -NoNewWindow -Wait -FilePath "cmd.exe" -ArgumentList "/c reg query `"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon`" /s | findstr `"AutoAdminLogon DefaultUserName DefaultPassword DontDisplayLastUserName LastUsedUsername`"" 
echo $? >>c:\test.txt

步骤二、配置开机启动项执行C:\restart.bat实现重启

代码语言:txt
AI代码解释
复制
reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "RestartScript" /d "C:\restart.bat" /f

步骤三、创建C:\restart.bat内容如下

代码语言:txt
AI代码解释
复制
@echo off
if "%1"=="hide" goto :main
start /min cmd /c "%~f0" hide & exit
:main

:: 重启命令
shutdown -r -t 0 -f

:: 删除上一步中的开机启动项
reg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "RestartScript" /f

把以上方案做到自定义镜像里就可以实现开机后首次自动重启

还可以试试开机计划任务的方案来实现首次自动重启(不需要配置开机自动登录):

步骤一、创建计划任务

代码语言:txt
AI代码解释
复制
schtasks /create /tn "\restart" /ru SYSTEM /rl highest /tr "cmd.exe /c C:\restart.bat" /sc onstart /f
schtasks /change /tn "\restart" /st 00:00 /sd 2000/01/01

步骤二、计划任务调用的C:\restart.bat代码如下

代码语言:txt
AI代码解释
复制
@echo off
if "%1"=="hide" goto :main
start /min cmd /c "%~f0" hide & exit
:main

:: 重启并禁用计划任务(重启一次,确保重启后计划任务不会再执行)
schtasks /change /tn "\restart" /DISABLE
shutdown -r -t 0 -f

以上2种首次自动重启的节奏可能不是严格在shell:startup或shell:common startup之前,相对来说,计划任务的方案比注册表的方案好一些,计划任务的方案差不多是EventId6005后2秒左右触发,而startup目录的程序一般是EventId6005后5秒左右触发,但重启有个过程,不好绝对地说,一定会在startup目录的程序运行之前就重启成功,如果想快速无感重启,最好做个可靠性高、优先级高的服务实现快速重启,在其他开机自动运行的程序之前。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
K8S环境快速部署Kafka(K8S外部可访问)
本次实战涉及到的K8S、Helm、NFS、StorageClass等前置条件,它们的安装和使用请参考:
程序员欣宸
2020/05/26
6.1K0
KubeSphere 最佳实战:KubeSphere 部署 Kafka 集群实战指南
今天,我分享一篇专题文档,这份内容源自 KubeSphere 社群里一位(潜在的)知识星球会员的特别约稿。他正面临一个挑战:在 Kubernetes 集群上部署一个高可用的 Kafka 集群,这个问题已经研究数日,但仍未找到合适的解决方案。
运维有术
2024/08/01
3440
KubeSphere 最佳实战:KubeSphere 部署 Kafka 集群实战指南
k8s部署Kafka集群
本次的目的是通过使用k8s搭建一个三节点的kafka集群,因为kafka集群需要用到存储,所以我们需要准备三个持久卷(Persistent Volume) 简称就是PV。
yukong
2020/07/28
4.3K0
k8s部署Kafka集群
使用 EFKLK 搭建 Kubernetes 日志收集工具栈
前面大家介绍了 Kubernetes 集群中的几种日志收集方案,Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch、Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案。
CNCF
2021/05/07
2.1K0
使用 EFKLK 搭建 Kubernetes 日志收集工具栈
K8S部署Kafka集群 - 部署笔记
Kafka和zookeeper是两种典型的有状态的应用集群服务。首先kafka和zookeeper都需要存储盘来保存有状态信息;其次kafka和zookeeper每一个实例都需要有对应的实例Id (Kafka需broker.id, zookeeper需要my.id) 来作为集群内部每个成员的标识,集群内节点之间进行内部通信时需要用到这些标识。
洗尽了浮华
2021/03/03
5.8K0
外包精通--使用helm3快速部署应用
github https://github.com/helm/helm/releases
Godev
2023/06/25
5550
k8s部署kafka集群「建议收藏」
可以看到,zookeeper集群状态正常,zk-1 是 leader ,在 zk-0 创建的数据在集群中所有的服务上都是可用的。
全栈程序员站长
2022/09/02
2.6K0
k8s部署kafka集群「建议收藏」
8 张图高可用 Hadoop 在 K8S 中部署完全指南
非高可用 k8s 环境,可参考我这篇文章:入门 Hadoop 在 K8S 环境中部署
我的小碗汤
2023/03/19
2.7K0
8 张图高可用 Hadoop 在 K8S 中部署完全指南
kubernetes 中 kafka 和 zookeeper 有状态集群服务部署实践 (二)
引言 Kafka和zookeeper是在两种典型的有状态的集群服务。首先kafka和zookeeper都需要存储盘来保存有状态信息,其次kafka和zookeeper每一个实例都需要有对应的实例Id
腾讯云容器服务团队
2017/07/17
5.4K0
kubernetes 中 kafka 和 zookeeper 有状态集群服务部署实践 (二)
8张图详解 MySQL 在 K8S 环境中部署与监控
官方文档:https://docs.oracle.com/en-us/iaas/mysql-database/doc/getting-started.html
入门笔记
2022/11/14
1.1K0
8张图详解 MySQL 在 K8S 环境中部署与监控
strimzi实战之二:部署和消息功能初体验
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是《strimzi实战》系列的第二篇,前文完成了介绍和准备工作,是时候体验strimzi的核心功能了:发送和接受kafka消息,为了完成这个目标,本篇会按照如下步骤开始实战: 在kubernetes环境部署strimzi,这里面包含两个步骤:首先是将各类资源创建好,然后再启动strmzi 验证基本功能:发送和接受kafka消息,这里面有两种操
程序员欣宸
2022/11/16
8850
strimzi实战之二:部署和消息功能初体验
k8s系列(6)-Helm
官网介绍安装方案https://helm.sh/zh/docs/intro/install/, 然后安装不上,所以手动安装下
爽朗地狮子
2022/10/20
8210
K8S的Kafka监控(Prometheus+Grafana)
对于部署在K8S上的Kafka来说,Prometheus+Grafana是常用的监控方案,今天就来实战通过Prometheus+Grafana监控K8S环境的Kafka;
程序员欣宸
2020/05/26
1.8K0
拒绝 Helm? 如何在 Kubernetes 上手撸 KRaft 模式 Kafka 集群?
今天分享的主题是:不使用 Helm、Operator,如何在 Kubernetes 集群上手工部署一个开启 SASL 认证的 KRaft 模式的 Kafka 集群?
运维有术
2024/12/09
3321
拒绝 Helm? 如何在 Kubernetes 上手撸 KRaft 模式 Kafka 集群?
kubernetes安装kafka
retention.ms=10000设定消息过期时间为10秒,过期后消息会自动删除
全栈程序员站长
2021/05/19
1.2K0
在 Kubernetes 上部署 Kafka 集群
Kafka 是目前最流行的分布式消息发布订阅系统,Kafka 功能非常强大,但它同样也很复杂,需要一个高可用的强大平台来运行,在微服务盛行,大多数公司都采用分布式计算的今天,将 Kafka 作为核心的消息系统使用还是非常有优势的。
我是阳明
2020/11/03
2.3K0
在 Kubernetes 上部署 Kafka 集群
在 Kubernetes 集群上部署 Kafka
最近在测试日志采集的时候,发现日志数据量稍微大一点,Elasticsearch 就有点抗不住了,对于 ES 的优化可能不是一朝一夕能够完成的,所以打算加一个中间层,将日志输出到 Kafka,然后通过 Logstash 从 Kafka 里面去消费日志存入 Elasticsearch。在测试环境现在并没有一套 Kafka 集群,所以我们来先在测试环境搭建一套 Kafka 集群。
我是阳明
2020/06/15
1.7K0
在 Kubernetes 集群上部署 Kafka
Kafka 集群配置SASL+ACL
在Kafka0.9版本之前,Kafka集群时没有安全机制的。Kafka Client应用可以通过连接Zookeeper地址,例如zk1:2181:zk2:2181,zk3:2181等。来获取存储在Zookeeper中的Kafka元数据信息。拿到Kafka Broker地址后,连接到Kafka集群,就可以操作集群上的所有主题了。由于没有权限控制,集群核心的业务主题时存在风险的。
py3study
2020/02/21
4.7K0
k8s安装spark
这段时间已经基本实现了产品应用层从原生的springboot微服务架构迁移到k8s上,过程可谓是瞎子过河一步一个坑,但是好在系统总体能跑起来了;今天研究了下产品计算层(spark集群)如何基于k8s部署操作,过程有些取巧了,但总的来说有些进展。 本次部署spark on k8s集群,基于kubeapps,简单便捷且一步到胃:
summerking
2022/10/27
1.2K0
k8s安装spark
k8s运维: kafka和zookeeper在k8s集群踩的一些坑
如果zookeeper配置了istio sidecar ,在选举阶段就会报connection refused(Connection refused)错误,如下图:
机械视角
2021/03/06
4K1
相关推荐
K8S环境快速部署Kafka(K8S外部可访问)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档