You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过GPO使用PowerShell部署Office LTSC 2021遇阻求助

GPO启动脚本部署Office LTSC 2021失败排查与修复

问题背景

通过GPO部署Microsoft Office LTSC Professional Plus 2021时,用批处理调用setup.exe可正常执行,但改用PowerShell脚本作为GPO启动脚本后完全无法运行。脚本预期实现检测已安装Office版本、卸载旧版本(如2019)并安装2021的功能,但GPO触发后无任何反应。

原PowerShell脚本

#Check for Office 2021 installation
$officeInstall = Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration' 'ProductReleaseIds'

if($officeInstall -eq "ProPlus2021Volume"){
 Exit
}

if($officeInstall -eq "ProPlus2019Volume"){
 #Uninstall 2019
 $now = Get-Date -format "dd-MMM-yyyy HH:mm:ss"
 Write-Output $now "Office 2019 found, uninstalling" >> c:\Office2021.log

 \\data\Shared\OfficeDeploymentTool\setup.exe /configure \\data\Shared\OfficeDeploymentTool\ConfigRemoveOffice2019.xml
}

#install office 2021
$now = Get-Date -format "dd-MMM-yyyy HH:mm:ss"
Write-Output $now "Installing Office 2021" >> c:\Office2021.log
\\data\Shared\OfficeDeploymentTool\setup.exe /configure \\data\Shared\OfficeDeploymentTool\ConfigTesting.xml

问题排查与修复方案

1. 解决GPO启动脚本的权限与执行策略

GPO启动脚本默认以System账户执行,需确保:

  • 共享文件夹\\data\Shared\OfficeDeploymentTool给Domain Computers组分配读取&执行权限,否则System账户无法访问共享资源。
  • 在GPO中配置PowerShell执行策略:进入计算机配置>管理模板>Windows组件>Windows PowerShell>启用脚本执行,选择允许本地脚本和远程签名脚本(生产环境建议严格权限,测试环境可临时选允许所有脚本)。

2. 修正脚本路径与语法问题

  • UNC路径在PowerShell中需用引号包裹,且用&调用外部可执行文件,避免路径解析错误:
    & "\\data\Shared\OfficeDeploymentTool\setup.exe" /configure "\\data\Shared\OfficeDeploymentTool\ConfigRemoveOffice2019.xml"
    
  • System账户写入C:\根目录可能受UAC限制,将日志路径改为C:\Windows\Temp\Office2021.log,确保有写入权限。

3. 完善注册表检测逻辑

64位系统上32位Office的注册表路径不同,需补充判断,同时添加错误处理避免脚本中断:

$officeInstall = $null
# 检测64位Office注册表
if (Test-Path 'HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration') {
    $officeInstall = Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration' 'ProductReleaseIds' -ErrorAction SilentlyContinue
}
# 检测32位Office注册表
if (-not $officeInstall -and Test-Path 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun\Configuration') {
    $officeInstall = Get-ItemPropertyValue 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun\Configuration' 'ProductReleaseIds' -ErrorAction SilentlyContinue
}

4. 确保安装/卸载同步执行

setup.exe默认异步执行,原脚本会导致卸载未完成就启动安装,需添加等待逻辑:

# 执行卸载并等待进程结束
$uninstallProcess = Start-Process "\\data\Shared\OfficeDeploymentTool\setup.exe" -ArgumentList "/configure \\data\Shared\OfficeDeploymentTool\ConfigRemoveOffice2019.xml" -Wait -PassThru
# 记录卸载结果
if ($uninstallProcess.ExitCode -eq 0) {
    Write-Output "$now Office 2019 uninstalled successfully" >> C:\Windows\Temp\Office2021.log
} else {
    Write-Output "$now Office 2019 uninstall failed with exit code $($uninstallProcess.ExitCode)" >> C:\Windows\Temp\Office2021.log
}

5. 验证GPO脚本配置

  • 在GPO的计算机配置>脚本(启动/关机)>启动中,添加PowerShell脚本时,使用UNC路径(如\\data\Shared\Scripts\InstallOffice2021.ps1),而非本地路径。
  • 勾选运行Windows PowerShell脚本的最佳选项,确保GPO正确解析脚本。

内容的提问来源于stack exchange,提问作者Veritas Curat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:22:05