PowerShell创建Outlook配置文件脚本远程运行无响应问题咨询
问题根因分析
- 两种运行方式的执行上下文存在本质差异:通过Configuration Manager客户端中心手动触发脚本时,脚本运行在当前登录用户的权限上下文中,操作HKCU注册表路径可以匹配到对应用户的配置;而通过SCCM控制台推送默认使用
SYSTEM本地系统账户执行脚本,SYSTEM账户的HKCU注册表路径与登录用户完全独立,操作HKCU路径不会生效,自然无任何响应。 - 你的脚本本身存在两处错误,也会导致执行失败:
- 最后一行
Start-Process语法不完整,缺少闭合引号和括号,执行到该行会直接报错中断 - 你创建的新配置文件名为
Outlook_new,但启动参数里指定的配置文件名是outlook,即使前面步骤正常,也无法正确加载新建的配置文件
- 最后一行
修复步骤
- 先修正脚本的语法和逻辑错误,修正后的完整脚本如下:
if($process=(get-process 'outlook' -ErrorAction SilentlyContinue)) { Write-Host "Outlook is open, closing app.." -ForegroundColor Green kill($process) Write-Host "Outlook is Closed" -ForegroundColor Green } $reg="HKCU:\Software\Microsoft\Office\16.0\Outlook\Profiles" $child=(Get-ChildItem -Path $reg).name foreach($item in $child) { Remove-item -Path registry::$item -Recurse } Write-Host "All profiles removed successfully" -ForegroundColor Green "`n" Write-Host "Now create new profile for outlook" -ForegroundColor Green "`n" New-Item -Name "Outlook_new" -Path $reg -Force -Verbose Write-Host "New profile created" -ForegroundColor Green "`n" Write-Host "Launch Outlook with newly created profile" -ForegroundColor Green Start-Process 'outlook' -ErrorAction SilentlyContinue -ArgumentList '/profile "Outlook_new"'
- 调整SCCM自定义脚本的执行权限:在SCCM的脚本部署配置中,将运行身份改为当前登录用户,不要使用默认的SYSTEM账户,确保HKCU操作可以匹配到目标用户的注册表路径。
- 仅上传脚本到CCCM文件夹无法解决问题,必须完成上述两个修改后才能正常执行。如果需要排查后续问题,可以在脚本中新增日志输出,将每步执行结果写入
C:\Windows\Temp\outlook_reset.log等本地路径,方便定位故障。
内容的提问来源于stack exchange,提问作者Juuchijs
相关产品推荐
相关产品推荐

