以下是将本地已有的企业微信安装包安装到D盘的完整PowerShell脚本,包含详细的错误处理和进度反馈:

<#
.SYNOPSIS使用本地企业微信安装包安装到D盘
.DESCRIPTION自动检测本地安装包,静默安装到指定目录支持.exe和.msi格式安装包
#># 强制管理员权限检查
if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {Write-Host "❗ 必须使用管理员权限运行!右键选择'以管理员身份运行'" -ForegroundColor RedStart-Sleep 3exit 1
}# 配置参数
$InstallPackagePath = "C:\Temp\WeComSetup.exe"  # 修改为你的实际安装包路径
$InstallPath = "D:\Program Files\WXWork"       # 目标安装路径# 安装包存在性检查
if (-not (Test-Path $InstallPackagePath)) {Write-Host "❌ 错误:安装包不存在于 $InstallPackagePath" -ForegroundColor RedWrite-Host "请检查以下可能位置:" -ForegroundColor YellowGet-ChildItem -Path "C:\" -Recurse -Filter "*WeCom*" -Include "*.exe","*.msi" -ErrorAction SilentlyContinue | Select-Object -First 5 -Property FullName | Format-Table -AutoSizeexit 1
}# D盘可用空间检查(至少需要500MB)
$requiredSpace = 500MB
$diskInfo = Get-PSDrive D -ErrorAction SilentlyContinue
if (-not $diskInfo) {Write-Host "❌ 错误:D盘不可用" -ForegroundColor Redexit 1
}
if ($diskInfo.FreeSpace -lt $requiredSpace) {Write-Host "❌ 错误:D盘空间不足 (需要: $($requiredSpace/1MB) MB, 可用: $($diskInfo.FreeSpace/1MB) MB)" -ForegroundColor Redexit 1
}# 准备安装目录
try {if (-not (Test-Path $InstallPath)) {New-Item -Path $InstallPath -ItemType Directory -Force | Out-NullWrite-Host "📁 已创建安装目录: $InstallPath" -ForegroundColor Cyan}
} catch {Write-Host "❌ 目录创建失败: $_" -ForegroundColor Redexit 1
}# 检查是否已安装相同版本
$uninstallRegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*"
$installed = Get-ItemProperty $uninstallRegPath -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -like "*企业微信*" -and $_.InstallLocation -like "$InstallPath*" }if ($installed) {Write-Host "ℹ️ 已检测到已安装版本: $($installed.DisplayVersion)" -ForegroundColor Yellow$choice = Read-Host "是否重新安装? (Y/N)"if ($choice -ne 'Y') { exit }
}# 根据安装包类型执行安装
$fileExt = [System.IO.Path]::GetExtension($InstallPackagePath).ToLower()try {Write-Host "🛠️ 正在安装到 $InstallPath ..." -ForegroundColor Cyanif ($fileExt -eq ".exe") {# EXE安装包参数(企业微信专用静默参数)$installArgs = "/S /D=$InstallPath"$process = Start-Process -FilePath $InstallPackagePath -ArgumentList $installArgs -Wait -PassThru# 验证安装结果if ($process.ExitCode -ne 0) {throw "安装程序返回错误代码: $($process.ExitCode)"}}elseif ($fileExt -eq ".msi") {# MSI安装包参数$installArgs = "/i `"$InstallPackagePath`" INSTALLDIR=`"$InstallPath`" /qn"$process = Start-Process "msiexec.exe" -ArgumentList $installArgs -Wait -PassThruif ($process.ExitCode -ne 0) {throw "MSI安装失败,错误代码: $($process.ExitCode)"}}else {throw "不支持的安装包格式: $fileExt"}# 验证主程序是否存在if (-not (Test-Path "$InstallPath\WXWork.exe")) {throw "主程序文件未找到,可能安装不完整"}Write-Host "✅ 安装成功!" -ForegroundColor Green# 创建开始菜单快捷方式(可选)$startMenuPath = "$env:ProgramData\Microsoft\Windows\Start Menu\Programs"$shortcutPath = "$startMenuPath\企业微信.lnk"$shell = New-Object -ComObject WScript.Shell$shortcut = $shell.CreateShortcut($shortcutPath)$shortcut.TargetPath = "$InstallPath\WXWork.exe"$shortcut.WorkingDirectory = $InstallPath$shortcut.Save()} catch {Write-Host "❌ 安装失败: $_" -ForegroundColor Redexit 1
}# 添加环境变量(可选)
try {$envPath = [Environment]::GetEnvironmentVariable("Path", "Machine")if (-not $envPath.Contains($InstallPath)) {[Environment]::SetEnvironmentVariable("Path", $envPath + ";$InstallPath", "Machine")Write-Host "🔧 已添加环境变量" -ForegroundColor Cyan}
} catch {Write-Host "⚠️ 环境变量设置失败: $_" -ForegroundColor Yellow
}Write-Host "🎉 企业微信已成功安装到: $InstallPath" -ForegroundColor Magenta
Write-Host "👉 主程序路径: $InstallPath\WXWork.exe" -ForegroundColor Cyan

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94678.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94678.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/94678.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[LVGL] 布局系统 lv_flex, lv_grid | 输入设备 lv_indev | union

第五章&#xff1a;布局系统&#xff08;lv_flex, lv_grid&#xff09; 欢迎回来&#xff01; 在第四章&#xff1a;样式&#xff08;lv_style&#xff09;中&#xff0c;我们掌握了如何通过色彩、字体和圆角等特性美化部件。当界面元素具备视觉吸引力后&#xff0c;如何优雅…

Linux中的mkdir命令

基本语法mkdir 命令的基本语法如下&#xff1a;mkdir [选项] 目录名创建单个目录要创建一个新目录&#xff0c;只需在 mkdir 后跟上目录名称。例如&#xff1a;mkdir new_folder这会在当前工作目录下创建一个名为 new_folder 的目录。创建多个目录可以一次性创建多个目录&#…

基于大数据的美食视频播放数据可视化系统 Python+Django+Vue.js

本文项目编号 25003 &#xff0c;文末自助获取源码 \color{red}{25003&#xff0c;文末自助获取源码} 25003&#xff0c;文末自助获取源码 目录 一、系统介绍二、系统录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状 六、核心代码6.1 查询数据6.2 新…

微信小程序精品项目-基于springboot+Android的计算机精品课程学习系统(源码+LW+部署文档+全bao+远程调试+代码讲解等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

(五)系统可靠性设计

2024年博主考软考高级系统架构师没通过&#xff0c;于是决定集中精力认真学习系统架构的每一个环节&#xff0c;并在2025年软考中取得了不错的成绩&#xff0c;虽然做信息安全的考架构师很难&#xff0c;但找对方法&#xff0c;问题就不大&#xff01; 本文主要是博主在学习过程…

Shuffle SOAR使用学习经验

Shuffle SOAR 1. 基础操作与配置1.1 环境搭建与系统要求1.1.1 硬件与操作系统要求Shuffle SOAR 平台作为一款开源的安全编排、自动化与响应&#xff08;SOAR&#xff09;工具&#xff0c;其部署方式灵活&#xff0c;支持云端和自托管两种模式。对于自托管部署&#xff0c;官方推…

腾讯云 EdgeOne 产品分析与免费套餐体验指南

本文围绕腾讯云 EdgeOne 展开&#xff0c;全方位介绍它的核心能力、免费套餐内容&#xff0c;以及如何快速上手、监控和排查常见问题&#xff0c;帮助个人开发者和中小企业在不产生额外成本的前提下体验高性能的边缘加速与安全防护。 一、产品概述 EdgeOne 定位 一体化云服务平…

npm ERR! Unsupported URL Type “workspace:“: workspace:./lib

如下 npm install npm ERR! code EUNSUPPORTEDPROTOCOL npm ERR! Unsupported URL Type "workspace:": workspace:./libnpm ERR! A complete log of this run can be found in: D:\IDEA\nodejs\node_cache\_logs\2025-08-06T08_21_32_592Z-debug-0.log原因及解决 pac…

微积分: 变化与累积

微积分,这门研究变化与累积的数学分支,其核心思想竟与东方哲学中"易"的概念不谋而合。《易经》有云:“易有太极,是生两仪”,而微积分正是通过"微分"与"积分"这对辩证统一的操作,揭示了世间万物变化与永恒的奥秘。 #mermaid-svg-UjO6qqMm0h…

web-vue工作流程

接续bmcweb流程。 当登录openbmc web页面后,浏览器会根据index.html中的js文件中的routes信息,自动获取信息,比如当前的网络设置信息、Datetime时区时间信息等。 以获取网络配置信息为例: 浏览器从app.js获取到settins->network的route:”/settings/network”,加载对应…

全球化2.0 | 泰国IT服务商携手云轴科技ZStack重塑云租赁新生态

在全球数字化转型不断加速的今天&#xff0c;泰国企业对于高质量云服务的需求日益旺盛。作为深耕本地市场逾二十年的行业领先IT服务商&#xff0c;泰国IT服务商不仅覆盖了IT系统、软件、硬件及网络等多个领域&#xff0c;还持续引领当地技术服务创新。近期&#xff0c;该泰国IT…

一文搞懂Hive临时表操作秘籍

Hive 临时表&#xff1a;数据处理的得力助手 在大数据处理的广阔领域中&#xff0c;Hive 凭借其强大的数据仓库功能&#xff0c;成为了众多数据分析师和开发者的得力工具。Hive 提供了类似 SQL 的查询语言 HiveQL&#xff0c;让我们能够方便地对存储在 Hadoop 分布式文件系统&a…

瞬态吸收光谱仪的基本原理

目录 1. 基态与激发态 2. 时间上的动力学信息 3. pump-probe探测技术 4. 时间延迟和同一光源 5. 延时线和OPA 6. 差分信号 7. 斩波器 原视频链接&#xff1a;瞬态吸收光谱仪的基本原理_哔哩哔哩_bilibili 1. 基态与激发态 当光照射在物质上时&#xff0c;组成物质的微观…

迭代器与生成器:Python 中的高效数据遍历机制

一、迭代器和生成器的基本概念 1. 迭代器的定义和工作原理 &#xff08;1&#xff09;迭代器的概念 迭代器&#xff08;Iterator&#xff09; 是 Python 中一种支持逐个访问元素的对象&#xff0c;它遵循 迭代器协议&#xff08;Iterator Protocol&#xff09;&#xff0c;即实…

Java 发送 HTTP POST请求教程

Java 发送 HTTP POST 请求的方法使用 HttpURLConnection&#xff08;原生 Java 支持&#xff09; 创建一个 HttpURLConnection 对象&#xff0c;设置请求方法为 POST&#xff0c;并写入请求体数据。以下是一个简单示例&#xff1a;import java.io.OutputStream; import java.ne…

计算机英语详细总结

计算机英语作为信息技术领域的专用语言&#xff0c;融合了专业术语、缩写、行业表达及技术文档规范&#xff0c;是学习编程、从事 IT 工作的核心工具。以下从核心分类、应用场景、学习方法三方面详细梳理&#xff1a;一、核心术语分类与高频词汇1. 编程语言与语法基础基础概念&…

「日拱一码」045 机器学习-因果发现算法

目录 基于约束的方法 (Constraint-based) 基于评分的方法 (Score-based) 基于函数因果模型的方法 (Functional Causal Models) 基于梯度的方法 (Gradient-based) 因果发现是机器学习中一个重要的研究方向&#xff0c;它旨在从观测数据中推断变量之间的因果关系 基于约束的…

S7-1200 串行通信介绍

S7-1200 串行通信S7-1200支持的串行通讯方式点对点&#xff08;PtP&#xff09;通信Modbus 主从通信USS 通信名称CM 1241 RS232CM 1241 RS422/485CB 1241 RS485订货号6ES7241-1AH32-0XB06ES7241-1CH32-0XB06ES7241-1CH30-1XB0通讯口类型RS232RS422/RS485RS485波特率(bps)300 ;6…

达梦包含OR条件的SQL特定优化----INJECT-HINT优化方法

Time:2025/08/07Author:skatexg应用迭代发版须执行如下动作 1、按目标需求全面压力测试&#xff0c;优化潜在慢SQL或设置特殊优化参数(如&#xff1a;OPTIMIZER_OR_NBEXP) 2、达梦数据库有数据导入&#xff0c;必须收集统计信息达梦使用SF_INJECT_HINT系统函数对指定SQL增加HIN…

JSqlParser学习笔记 快速使用JSqlParser

文章目录前言本章节源码官方文档信息认识JSqlParserHow it works? 它是如何工作的&#xff1f;知识点关于statement实际应用场景引入依赖Parser 解析SQL解析sql语句解析sql区分sql类型分析增删改查语句查询语句认识PlainSelect示范新增语句了解Insert常用方法示范更新语句删除…