Win11任务栏图标左移PS脚本手动有效,Intune执行失败求助
问题根源
Intune默认以SYSTEM账户上下文执行PowerShell脚本,而HKCU:指向的是当前执行账户的用户注册表 hive。SYSTEM账户的HKCU路径结构和普通用户完全不同,因此找不到你要修改的HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced路径——这就是手动运行正常、Intune执行失败的核心原因。
解决方案
方法1:以登录用户身份执行脚本(推荐)
在Intune控制台配置脚本时,找到**"以登录用户身份运行脚本"**选项并勾选启用。这样脚本会在用户登录后以该用户的上下文执行,HKCU:就能正确指向用户自己的注册表 hive,目标路径自然存在。
注意:该功能要求设备上的Intune管理扩展版本为最新,确保设备已完成扩展更新。
方法2:系统上下文下直接修改用户注册表
如果必须以SYSTEM账户执行脚本,可以通过用户SID定位其已挂载的注册表 hive(用户登录时,其注册表会自动挂载到HKU\<用户SID>路径下),修改后的脚本示例:
# 先创建日志目录,避免Transcript失败 New-Item -Path "C:\transcripts" -ItemType Directory -Force Start-Transcript -Path "C:\transcripts\transcript0.txt" -NoClobber # 获取当前登录用户的SID $userName = (Get-WmiObject -Class Win32_ComputerSystem).UserName $userSID = (New-Object System.Security.Principal.NTAccount($userName)).Translate([System.Security.Principal.SecurityIdentifier]).Value # 修改HKU下对应用户的注册表项 New-ItemProperty -Path "HKU:\$userSID\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "TaskbarAl" -Value 0 -PropertyType Dword -Force Stop-Transcript
额外注意事项
- 移除脚本中的
Set-Executionpolicy -Executionpolicy Bypass -force:Intune管理扩展已默认配置允许脚本执行的策略,系统上下文修改执行策略可能引发权限问题,完全没必要保留。 - 多用户场景需调整逻辑:如果设备有多个用户登录,需要额外判断目标用户,避免修改错误的用户注册表。
内容的提问来源于stack exchange,提问作者Matis Russi
相关产品推荐
相关产品推荐

