当前位置: 首页 > news >正文

windows有一个企业微信安装包,脚本执行并安装到d盘。

以下是将本地已有的企业微信安装包安装到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.dtcms.com/a/319761.html

相关文章:

  • 我的世界Java版1.21.4的Fabric模组开发教程(十七)自定义维度
  • PCL提取平面上的圆形凸台特征
  • WindowsLinux系统 安装 CUDA 和 cuDNN
  • 从库存一盘货到全域智能铺货:巨益科技全渠道平台助力品牌业财一体化升级
  • 电子基石:硬件工程师的器件手册 (九) - DC-DC拓扑:电能转换的魔术师
  • 线上业务突然流量掉 0 ?一次 DNS 污染排查与自救实录
  • Qt中类提升后不显示问题
  • 纷享销客前端实习一面
  • 数据结构(五):顺序循环队列与哈希表
  • 纪念《信号与系统》拉普拉斯变换、Z变换之前内容学完
  • 树莓派Raspberry Pi 烧录
  • TCP/IP 协议中的三次握手和四次挥手-----详解笔记
  • 板块三章节3——NFS 服务器
  • 人工智能2.0时代的人才培养和通识教育
  • 计算机视觉第一课opencv(一)保姆级教学
  • lane_up channel_up
  • mysql8.0.40服务日志时间和linux系统时间不同步问题!
  • 指针——练习
  • 算法 - 贪心算法
  • 计网学习笔记第3章 数据链路层层(灰灰题库)
  • 冷库设备远程监控物联网+省电节能解决方案
  • linux下实现System V消息队列实现任意结构体传输
  • 具身智能,正在翻越三座大山
  • 计算机毕业设计java疫情开放下的新冠信息共享平台 基于Java的社区疫情防控人员流动管理系统 疫情防控期间社区人员动态管理系统
  • 范数的定义、分类与 MATLAB 应用实践
  • 解决React白板应用中的画布内容丢失问题
  • 3363. 最多可收集的水果数目
  • 关键字 - 第二讲
  • Spring AI + Redis:构建高效AI应用缓存方案
  • 【物联网】基于树莓派的物联网开发【25】——树莓派安装Grafana与Influxdb无缝集成