如何在Intune中运行PS1脚本?Win32 App部署失败求助
解决Intune Win32应用部署注册表修改脚本失败的问题
核心结论
完全可以将修改注册表的PowerShell脚本作为Win32应用部署到Intune,你的整体思路没问题,安装失败基本是脚本权限、打包配置或检测规则的细节出了问题。
排查与修复步骤
1. 脚本权限与路径适配
- Intune部署Win32应用默认以系统上下文运行,要对应好注册表路径:
- 若修改当前用户注册表(
HKCU),需映射到目标用户的注册表 hive,示例代码:$userSID = (Get-CimInstance Win32_UserAccount -Filter "Name='$($env:USERNAME)'").SID reg load HKU\TempUser "C:\Users\$env:USERNAME\NTUSER.DAT" reg add HKU\TempUser\Software\YourTargetPath /v YourValueName /t REG_SZ /d "NewValue" /f reg unload HKU\TempUser - 若修改系统注册表(
HKLM),确保脚本添加-Force参数跳过确认,且无交互式操作。
- 若修改当前用户注册表(
- 脚本开头添加执行策略绕过(仅适配部署场景):
Set-ExecutionPolicy Bypass -Scope Process -Force
2. 打包与安装命令配置
- 用Win32 Content Prep Tool打包时,直接指定PowerShell安装命令,不要通过CMD间接调用:
- 安装命令:
powershell.exe -ExecutionPolicy Bypass -File .\YourScriptName.ps1
- 安装命令:
- 打包时加
-l参数生成日志,方便后续排查:IntuneWinAppUtil.exe -c "C:\YourScriptFolder" -s "YourScriptName.ps1" -o "C:\OutputFolder" -l
3. 检测规则精准匹配
- 注册表检测规则要和脚本修改的内容完全一致:
- 比如脚本修改
HKLM\Software\YourApp\Config下的Status值为Enabled,检测规则需设置:- 注册表路径:
HKLM\Software\YourApp\Config - 值名称:
Status - 检测方法:字符串匹配,目标值为
Enabled
- 注册表路径:
- 比如脚本修改
- 注意32位/64位注册表重定向:如果脚本针对64位系统,检测规则要勾选64位注册表选项。
4. 日志定位问题
- 查看Intune部署日志:
C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\IntuneManagementExtension.log - 搜索脚本名称或
Exit Code关键词,直接定位失败原因(比如权限不足、路径错误、脚本语法报错)
内容的提问来源于stack exchange,提问作者Oğuz Gecir
相关产品推荐
相关产品推荐

