网站首页 > 博客文章 正文
根据微软官方文档,编写的一键安装office脚本
快速安装 · 自动激活 · 无需手动配置
支持 Office 2019 / 2021 / 2024 批量授权版本
全自动批处理脚本 + 微软官方部署工具
一、部署原理概述
Office Deployment Tool(ODT) 是微软官方提供的一个命令行部署工具,用于安装 Office 365、Office 2016/2019/2021/2024 等版本的 Office 产品。它通过读取一个 XML 配置文件,来自动完成下载安装与安装过程。
二、核心组成
- setup.exe → 下载所需 Office 安装包
微软的部署工具程序,核心执行器,命令行工具。
https://www.microsoft.com/en-us/download/details.aspx?id=49117 - config.xml → 根据配置进行自动安装
你写的 XML 文件,告诉 ODT 安装哪个版本、语言、架构等。
https://config.office.com/deploymentsettings - 加入基于KMS的官方秘钥,参考微软GVLK文档
https://learn.microsoft.com/zh-cn/deployoffice/vlactivation/gvlks
三、工作机制详细流程
- 解析 XML 文件
setup.exe 会读取 config.XML,自动识别版本、语言、架构等。 - /download 模式(下载)
如果使用 /download config.xml,通过 /download 命令,连接微软 CDN 下载完整安装文件(约 3GB)。 - 静默安装 Office
使用 /configure 执行安装,无需手动干预。 - 自动激活(已加入kms服务器)
安装完成后,脚本会尝试使用内置 KMS 地址 kms.03k.org 激活 Office。
可替换其他服务器,或使用其他激活工具,不执行启动及激活命令即可
四、手动安装使用说明
- 把下载的setup.exe/config.xml放入office文件夹,在本文件夹以管理员身份打开CMD窗口,执行如下命令
下载命令:
setup /download config.xml
- 安装命令:
setup /configure config.xml
- 启动及激活命令:
cd C:\Program Files\Microsoft Office\Office16
cscript ospp.vbs /sethst:kms.03k.org
cscript ospp.vbs /act
- 注意:如果你安装的是32位版本,那么启动命令第一个要改成:cd C:\Program Files (x86)\Microsoft Office\Office16
五、ODT 与传统安装方式的区别
特性 | Office Setup.exe 安装光盘 | ODT 部署工具 |
灵活性 | 固定版本 | 可选版本/语言/架构 |
自动化 | 无 | 支持批量部署 |
控制性 | 少 | 强,可配置显示、更新、激活等 |
用途 | 个人安装 | 企业/批量部署首选 |
根据上述原理,把office 配置文件及部署工具放入office文件夹,2019/2021/2024三个版本,文件结构及代码如下:
文件结构:
office/
├── office自动安装脚本.bat
├── setup.exe
├── 2019/
│ ├── config32.xml
│ └── config64.xml
├── 2021/
│ ├── config32.xml
│ └── config64.xml
├── 2024/
│ ├── config32.xml
│ └── config64.xml
自动安装脚本代码:
@echo off
chcp 65001
echo 请不要关闭此程序,自动从微软下载并安装 Office 安装程序(约3G),命令运行完毕前请稍候。安装前请关闭杀毒软件或允许执行,软件通过命令直接拉取微软批量授权版安装并激活。完成后会自动删除安装缓存
REM 检查是否为管理员运行
openfiles >nul 2>&1
if %errorlevel% neq 0 (
echo 正在请求管理员权限...
powershell -Command "Start-Process '%~f0' -Verb runAs"
exit /b
)
REM 使用 PowerShell 获取系统架构
for /f %%a in ('powershell -NoProfile -Command "[System.Environment]::Is64BitOperatingSystem"') do (
if %%a==True (set "ARCH=64") else (set "ARCH=32")
)
REM 提示选择 Office 版本
set "VERSION=2024"
echo.
echo 请选择要安装的 Office 版本:
echo [1] Office 2019
echo [2] Office 2021
echo [3] Office 2024
set /p "CHOICE=请输入选项号(默认安装 Office 2024):"
if "%CHOICE%"=="1" set "VERSION=2019"
if "%CHOICE%"=="2" set "VERSION=2021"
if "%CHOICE%"=="3" set "VERSION=2024"
REM 切换到 office 安装目录
cd /d "%~dp0"
if not exist "%VERSION%\config%ARCH%.xml" (
echo 错误:未找到配置文件。请检查 "%VERSION%\config%ARCH%.xml" 是否存在。
pause
exit /b
)
REM 开始下载并安装
setup.exe /download "%VERSION%\config%ARCH%.xml"
setup.exe /configure "%VERSION%\config%ARCH%.xml"
REM 激活(路径自动查找)
set "OFFICE_PATH="
for %%d in ("%ProgramFiles%", "%ProgramFiles(x86)%") do (
if exist "%%d\Microsoft Office\Office16\ospp.vbs" set "OFFICE_PATH=%%d\Microsoft Office\Office16"
if exist "%%d\Microsoft Office\Office17\ospp.vbs" set "OFFICE_PATH=%%d\Microsoft Office\Office17"
if exist "%%d\Microsoft Office\Office18\ospp.vbs" set "OFFICE_PATH=%%d\Microsoft Office\Office18"
)
if not defined OFFICE_PATH (
echo 未找到 Office 安装目录,激活失败。
goto end
)
cd /d "%OFFICE_PATH%"
cscript ospp.vbs /sethst:kms.03k.org
cscript ospp.vbs /act
:end
echo Office 安装完成,10 秒后清理安装程序...
timeout /t 10 >nul
cd /d "%~dp0"
cd ..
rd /s /q "office"
echo 安装程序已删除,完成。
exit
配置文件示例:
<Configuration ID="3e2b9314-8d68-4bb3-bfd8-eb31e38eb9c5">
<Info Description="" />
<Add OfficeClientEdition="64" Channel="PerpetualVL2024">
<Product ID="ProPlus2024Volume" PIDKEY="XJ2XN-FW8RK-P4HMP-DKDBV-GCVGB">
<Language ID="MatchOS" />
<ExcludeApp ID="Lync" />
</Product>
</Add>
<Property Name="SharedComputerLicensing" Value="0" />
<Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
<Property Name="DeviceBasedLicensing" Value="0" />
<Property Name="SCLCacheOverride" Value="0" />
<Property Name="AUTOACTIVATE" Value="1" />
<Updates Enabled="TRUE" />
<RemoveMSI />
<Display Level="Full" AcceptEULA="TRUE" />
</Configuration>
六、一键安装脚本说明
本脚本可自动:
- 判断系统是 32 位还是 64 位
- 提示用户选择 Office 版本(2019/2021/2024)
- 下载并安装对应版本
- 自动定位 Office 安装目录
- 使用指定 KMS 地址激活
脚本的下载地址如下
https://51sys.cn/2025/06/05/office/
猜你喜欢
- 2025-07-02 用Python写了一个上课点名系统(附源码)(自制考勤系统)
- 2025-07-02 Kubernetes中的PV、PVC、Configmap介绍
- 2025-07-02 Java使用springMVC开发微信公众号自动回复图片消息
- 2025-07-02 大事全知晓!2022年新闻日历来了!(2o2l年新闻)
- 2025-07-02 魔兽】一秒学会暗牧:打地鼠WA(怀旧服牧师打地鼠什么意思)
- 2025-07-02 轻量级的灰度&配置平台|得物技术
- 2025-07-02 DOS批处理时字符串比较大小问题,a小于A,97
- 2025-07-02 Windows命令行command的Shell命令详细解析和语法
- 2025-07-02 Thinkphp3.2.3及以下版本漏洞整理
- 2025-07-02 我的原始场理论数学模型优化(数学模型建立的基本思路)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)