系统远程安装

2023-11-16

一、现有如下需求:

1.分行有20台左右瘦客户机,一台文员机;

2.在总部可以通过控制台(控制软件)统一管理控制这20台瘦客户机,文员机可以通过远程桌面控制

3.现需要统一给分行这20台瘦客户机升级系统

二、解决思路

1.将新系统(Ghost文件)先发送到分行文员机(通过FTP)。

2.20台瘦客户机通过控制台下发批处理,批处理动作:先从瘦客户机压缩出一个8G左右的盘,用于放新系统Ghost文件;再在瘦客户机

创建一个WinPE启动项,系统重启后进入WinPE,自动调用Ghost64应用程序执行系统Ghost;

三、实施

第一步:文员机搭建FTP(这步简单,系统自带FTP或下载一个FTP软件都可以),设置FTP用户名,密码分别为test,test1;

新系统Ghost文件放在FTP根目录的SystemISO文件夹下,命名为sys.gho。

第二步:瘦客户机压缩8G盘脚本

:diskpart
rem 1.将硬盘改为两个分区,一个系统分区,一个8G的用于放系统的备用分区
rem 2.只对中文系统存在一个硬盘且只有主要,扩展,逻辑这三种分区作过测试
rem 3.处理流程:第一步获取磁盘信息保存到diskpart.txt文本,第二步从文本中筛选出分区信息,删除非第一分区,恢复分区以外的其它分区,再进行扩盘,压缩,新建

::开启windows磁盘管理相关服务
net start defragsvc
::导出磁盘列表放到diskpartLog.txt echo
>diskpart1.script select disk 0 echo>>diskpart1.script list partition echo>>diskpart1.script exit diskpart /s diskpart1.script >diskpartLog.txt ::根据磁盘列表信息,删除非第一分区,恢复分区以外的其他分区(即只保留C盘系统分区) echo>diskpart2.script select disk 0 for /f "tokens=1,2,3,4" %%a in (diskpartLog.txt) do if %%a == 分区 (if not %%d==大小 (if not %%C==恢复 (if %%b gtr 1 (echo>>diskpart2.script select partition=%%b echo>>diskpart2.script delete partition noerr)))) for /f "tokens=1,3" %%a in (diskpartLog.txt) do if %%a == 分区 (if %%b==扩展的 (echo>>diskpart2.script select partition=0 echo>>diskpart2.script delete partition noerr)) ::先整合然后压缩一个8G的D盘 echo>>diskpart2.script select partition=1 echo>>diskpart2.script extend noerr echo>>diskpart2.script shrink desired=8000 noerr echo>>diskpart2.script create partition primary noerr echo>>diskpart2.script format fs=ntfs label="D" quick noerr echo>>diskpart2.script assign letter=d noerr echo>>diskpart2.script Exit diskpart <diskpart2.script >>diskpartLog.txt del /f /q *.script

第三步:制作WinPE.wim系统并添加Ghost.exe应用程序

1)先官网下载Windows ADK及对应的Windows PE加载项(要联网下载,需要点时间),安装完成后,右键以管理员身份运行“部署和镜像工具环境”,输入

”copype amd64 D:\WinPE“ 复制WinPE文件(64位WinPE)到D盘WimPE目录。

2)这里我们主要要用到的是Windows PE启动镜像boot.wim,它位于上一步所获得的WinPE文件夹下,路径为:D:\WinPE\media\sources\boot.wim,接下来是操作

这个PE启动镜像文件boot.wim,主要操作两个,一个是将Ghost64.exe应用程序复制进去,再一个是编辑这个PE的启动脚本(startnet.cmd)让PE启动后自动运行Ghost64.exe程序,执行系统恢复。

先挂载boot.wim:

复制Ghost64.exe应用程序到PE中

编辑PE启动脚本

编辑完startnet.cmd后记得,保存退出。

重新封装启动镜像boot.wim

 boot.wim封装好后,复制一份到文员电脑FTP的根目录下SystemISO文件夹下,并改成Win10PE.wim;

第四步:在现有系统中添加WinPE启动项

bcdedit /create {ramdiskoptions}
bcdedit /set {ramdiskoptions} ramdisksdidevice partition=C:
bcdedit /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
::以上是在现有系统BCD存储中创建WinPE启动所需的{ramdiskoptions}对象,没有这个启动WinPE会蓝屏
for /f "tokens=2" %%a in ('bcdedit /create /d "Win10PE" /application osloader') do ( bcdedit /set %%a device ramdisk=[C:]\Boot\Win10PE.wim,{ramdiskoptions} bcdedit /set %%a path \windows\system32\winload.exe bcdedit /set %%a osdevice ramdisk=[C:]\Boot\Win10PE.wim,{ramdiskoptions} bcdedit /set %%a systemroot \windows bcdedit /set %%a winpe yes bcdedit /set %%a detecthal yes bcdedit /set %%a inherit {bootloadersettings} bcdedit /set %%a ems yes bcdedit /displayorder %%a /addfirst bcdedit /default %%a bcdedit /timeout 2)

好了,到这里基本都完成了,最后附上全部脚本代码:

@echo off&setlocal enabledelayedexpansion&title AutoInstallSystem

rem:设置开关用于防误操作
if not [%1] == [yes] (goto :eof)

:diskpart
rem 1.将硬盘改为两个分区,一个系统分区,一个8G的用于放系统的备用分区
rem 2.只对中文系统存在一个硬盘且只有主要,扩展,逻辑这三种分区作过测试
rem 3.处理流程:第一步获取磁盘信息保存到diskpart.txt文本,第二步从文本中筛选出分区信息,删除非第一分区,恢复分区以外的其它分区,再进行扩盘,压缩,新建分区;

if not exist c:\autoinstallSys (mkdir c:\autoInstallSys)
cd /d C:\autoInstallSys
net start defragsvc
echo>diskpart1.script select disk 0
echo>>diskpart1.script list partition
echo>>diskpart1.script exit
diskpart /s diskpart1.script >diskpartLog.txt

echo>diskpart2.script select disk 0
for /f "tokens=1,2,3,4" %%a in (diskpartLog.txt) do if %%a == 分区 (if not %%d==大小 (if not %%C==恢复 (if %%b gtr 1 (echo>>diskpart2.script select partition=%%b
echo>>diskpart2.script delete partition noerr))))

for /f "tokens=1,3" %%a in (diskpartLog.txt) do if %%a == 分区 (if %%b==扩展的 (echo>>diskpart2.script select partition=0
echo>>diskpart2.script delete partition noerr))

echo>>diskpart2.script select partition=1
echo>>diskpart2.script extend noerr
echo>>diskpart2.script shrink desired=8000 noerr
echo>>diskpart2.script create partition primary noerr
echo>>diskpart2.script format fs=ntfs label="D" quick noerr
echo>>diskpart2.script assign letter=d noerr
echo>>diskpart2.script Exit
diskpart <diskpart2.script >>diskpartLog.txt
del /f /q *.script

:ftp
rem:1.先D盘创建一个目录用于保存gho文件,WinPE文件,Log文件
rem:2.通过FTP获取文件
if not exist D:\autoInstallSys\sysISO (mkdir D:\autoInstallSys\sysISO)
if not exist D:\autoInstallSys\WinPE (mkdir D:\autoInstallSys\WinPE)
if not exist D:\autoInstallSys\Logs (mkdir D:\autoInstallSys\Logs)
xcopy C:\autoInstallSys\diskpartLog.txt D:\autoInstallSys\Logs /q /y
for /f "tokens=15" %%a in ('ipconfig ^| findstr /i .254') do (
set ip=%%a
echo>ftp.script open !ip:254=10!
::上面这部操作是获取文员电脑的IP地址并打开FTP
echo>>ftp.script test echo>>ftp.script test1 echo>>ftp.script binary echo>>ftp.script cd SystemISO echo>>ftp.script prompt off echo>>ftp.script lcd D:\autoInstallSys\sysISO echo>>ftp.script get sys.gho echo>>ftp.script lcd D:\autoInstallSys\WinPE echo>>ftp.script get Win10PE.wim echo>>ftp.script close echo>>ftp.script bye ftp -s:ftp.script > D:\autoInstallSys\Logs\ftpLog.txt del /f /q *.script) :sysInstall rem:先简单验证文件是否存在 if not exist D:\autoInstallSys\sysISO\sys.gho (Echo Not Find sys.gho! > D:\autoInstallSys\Logs\sysInstallLog.txt&goto :eof) if not exist D:\autoInstallSys\WinPE\Win10PE.wim (Echo Not Find Win10PE.wim! >> D:\autoInstallSys\Logs\sysInstallLog.txt&goto :eof) xcopy D:\autoInstallSys\WinPE\Win10PE.wim C:\Boot /q /y bcdedit /create {ramdiskoptions} bcdedit /set {ramdiskoptions} ramdisksdidevice partition=C: bcdedit /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi for /f "tokens=2" %%a in ('bcdedit /create /d "Win10PE" /application osloader') do ( bcdedit /set %%a device ramdisk=[C:]\Boot\Win10PE.wim,{ramdiskoptions} bcdedit /set %%a path \windows\system32\winload.exe bcdedit /set %%a osdevice ramdisk=[C:]\Boot\Win10PE.wim,{ramdiskoptions} bcdedit /set %%a systemroot \windows bcdedit /set %%a winpe yes bcdedit /set %%a detecthal yes bcdedit /set %%a inherit {bootloadersettings} bcdedit /set %%a ems yes bcdedit /displayorder %%a /addfirst bcdedit /default %%a bcdedit /timeout 2) shutdown /r /f /t 1 goto :eof

附上几个相关链接:

Windows多启动数据配置工具bcdedit命令详解

GHOST使用以及常用命令详解

WinPE:装载和自定义

FTP命令详解(含操作实例)

 

转载于:https://www.cnblogs.com/Mst5u/p/10674982.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系统远程安装 的相关文章

随机推荐

  • pydantic学习与使用-11.pycharm插件pydantic 语法提示功能

    前言 虽然 pydantic 可以很好地与任何开箱即用的 IDE 配合使用 但在 PyCharm 的 JetBrains Plugins Repository 上提供了一个提供改进的 pydantic 集成的PyCharm 插件 可以更高效
  • 使用stm32进行ota升级

    主要方案 1 硬件方案 只使用mcu内部flash 没有外置flash 2 数据传输协议 ymodem 如果不了解ymodem值得去了解下 3 bootloader和app存放方案 将mcu内部flash分为两块内存 分别存放bootloa
  • 时序预测

    时序预测 MATLAB实现LSTM长短期记忆神经网络时间序列预测 多指标评价 目录 时序预测 MATLAB实现LSTM长短期记忆神经网络时间序列预测 多指标评价 效果一览 基本描述 模型结构 程序设计 效果一览 基本描述 长
  • 亚马逊云科技Build On2022技能提升计划第二季——揭秘出海爆款新物种背后的黑科技

    Build On是什么 亚马逊云科技开发者Build On是由亚马逊团队策划 开发者社区联合打造的动手实操系列活动 它是以现实技术应用和需求场景为核心 结合时下重点技术领域与亚马逊云科技的前沿技术方案打造的 面向开发人员 IT技术人员 或技
  • mysql插入新字段方法

    MySQL 允许在开头 中间和结尾处添加字段 一 开头 MySQL 默认在表的最后位置添加新字段 开头位置 第一列的前面 添加新字段 那么可以使用 FIRST 关键字 ALTER TABLE lt 表名 gt ADD lt 新字段名 gt
  • PAT C入门题目-7-19 计算天数 (15 分)

    7 19 计算天数 15 分 本题要求编写程序计算某年某月某日是该年中的第几天 输入格式 输入在一行中按照格式 yyyy mm dd 即 年 月 日 给出日期 注意 闰年的判别条件是该年年份能被4整除但不能被100整除 或者能被400整除
  • 图数据库(十二):Neo4j中数据类型及部分数据类型转换函数

    数据类型可以分为三大类 属性类型 数值类 Integer 和 Float 字符类 String 布尔类 Boolean 空间类 Point 时间类 Date Time LocalTime DateTime LocalDateTime 和 D
  • ChatGPT中文版Prompt提示工程超详细指南《提示工程高级技巧与技术》Github最新破万星项目Meta AI前工程师解密百万年薪提示工程师GPT-4模型优化利器(二)不定期更新

    提示工程高级技巧与技术 前言 Introduction 导言 零样本提示 少样本提示 少样本提示的限制 Chain of Thought Prompting 链式思考 CoT 提示 零样本COT提示 Zero shot COT 自我一致性
  • 【华为OD机试真题 JAVA】最长的指定瑕疵度的元音子串

    JS版 华为OD机试真题 JS 最长的指定瑕疵度的元音子串 标题 最长的指定瑕疵度的元音子串 时间限制 1秒 内存限制 262144K 语言限制 不限 开头和结尾都是元音字母 aeiouAEIOU 的字符串为 元音字符串 其中混杂的非元音字
  • 微信小程序中如何实现微信支付

    微信支付是微信公众平台提供的一种在线支付服务 可以为用户提供快速 方便 安全的支付体验 而在微信小程序中实现微信支付 则可以为应用程序提供更多的功能和服务 提高用户体验和商业价值 因此 在本文中 我们将介绍如何在微信小程序中实现微信支付 步
  • 轻量级linux桌面环境,Linux发行版最为轻量级的桌面环境之一Xfce 桌面

    开源多样性应该是 Linux 最好的特性之一 用户可以不断尝试各种自己喜欢的新鲜玩法与花样 并从中选择最适合自己的应用 无论你是 Linux 新人还是老鸟 层出不穷的应用和桌面环境可能都会让我们应接不暇 特别是尝试不同的 Linux 桌面环
  • Android之仿今日头条顶部导航栏效果

    随着时间的推移现在的软件要求显示的内容越来越多 所以要在小的屏幕上能够更好的显示更多的内容 首先我们会想到底部菜单栏 但是有时候像今日头条新闻客户端要显示的内容太多 而且又想在主界面全部显示出来 所以有加了顶部导航栏 今日头条顶部导航栏区域
  • 报错: org.springframework.boot.builder.SpringApplicationBuilder.([Ljava/lang/Object;)V

    springboot中引入eureka报错 java lang NoSuchMethodError org springframework boot builder SpringApplicationBuilder
  • 事件驱动型状态机EFSM介绍及C语言实现

    一 什么是状态机 有限状态机 英语 Finite state machine FSM 又称有限状态自动机 简称状态机 是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型 有限状态机是一种用来进行对象行为建模的工具 其作用主要是描
  • 解决 010Edittor 复制问题

    遇到的问题 使用010Edittor做CTF题目的时候 复制Nex Text File 复制的内容在右边 解决方法 如果要复制到左边是复制的问题 需要ctrl shift c 然后ctrl shift v粘贴即可 具体操作如下 这边复制过来
  • iOS动画 ---特殊Layer动画

    iOS动画 特殊Layer动画 iOS中有一些特殊的layer 也可以做一些动画效果 本文就补充两个可以做动画效果的layer CAEmitterLayer 和 CAReplicatorLayer CAEmitterLayer Emitte
  • Android性能优化系列:Bitmap

    文章目录 Bitmap 简介 Bitmap 的创建 不同系统版本 Bitmap 的内存分配策略 Bitmap 内存占用计算 在电脑查看的图片大小和运行内存大小区别 图片占用内存计算 Bitmap 内存优化 inJustDecodeBound
  • 448. Find All Numbers Disappeared in an Array

    查找缺失的数据 相似的题目查看如下链接的基本情况 448 查找缺失的数据 442 Find All Duplicates in an Array 先解决查找数组当中相同的元素 这道题目是442的 如何查找出数组当中出现多次的元素 这就是桶排
  • js三种声明方式

    JS中声明函数大体上有三种方法 1 常规方法 JScript code function funcName var1 var2 add you code here 2 匿名函数引用法 找不到具体的称呼 暂且先这么叫 JScript code
  • 系统远程安装

    一 现有如下需求 1 分行有20台左右瘦客户机 一台文员机 2 在总部可以通过控制台 控制软件 统一管理控制这20台瘦客户机 文员机可以通过远程桌面控制 3 现需要统一给分行这20台瘦客户机升级系统 二 解决思路 1 将新系统 Ghost文