Intune部署PowerShell脚本调用子脚本遇权限问题求助
解决方案
核心问题分析
- 你当前用
Start-Process powershell "C:\xyz.ps1"会继承父脚本的SYSTEM/管理员权限,并非以普通用户身份运行,这是权限问题的根源 Set-ExecutionPolicy Bypass是针对SYSTEM用户设置的,不会自动应用到普通用户的PowerShell会话
具体修改步骤
1. 定位当前登录的普通用户
在SYSTEM权限的脚本中,通过以下命令获取当前交互登录的本地用户:
$currentUser = Get-WmiObject Win32_ComputerSystem | Select-Object -ExpandProperty UserName # 拆分出用户名和计算机名(如果是本地用户) $userDomain, $userName = $currentUser -split "\\", 2
2. 以普通用户身份启动子脚本
使用Start-Process的-Credential参数指定普通用户身份,同时直接在PowerShell命令中指定执行策略(避免依赖系统级执行策略设置):
# 获取普通用户的凭据(SYSTEM权限下可以直接获取当前登录用户的令牌) $userCredential = New-Object System.Management.Automation.PSCredential($currentUser, (ConvertTo-SecureString "" -AsPlainText -Force)) # 启动子脚本,指定普通用户身份、执行策略,同时确保窗口可见(可选,方便排查) Start-Process powershell.exe -Credential $userCredential -ArgumentList "-ExecutionPolicy Bypass -File `"C:\xyz.ps1`"" -Wait -NoNewWindow
3. 优化路径与权限(可选但推荐)
把解压后的脚本放到普通用户有明确权限的目录,比如C:\Users\Public\,避免系统目录的权限限制:
# 修改解压路径到公共目录 Expand-Archive -Path "C:\xyz.zip" -DestinationPath "C:\Users\Public\" # 后续启动脚本路径改为 C:\Users\Public\xyz.ps1
完整修改后的脚本示例
# 创建目录 New-Item -Path "C:\IT Drivers" -ItemType Directory -Force # 下载压缩包 Invoke-WebRequest -Uri 'https://xyz.zip' -OutFile "C:\xyz.zip" -UseBasicParsing # 解压到公共目录(普通用户有权限) Expand-Archive -Path "C:\xyz.zip" -DestinationPath "C:\Users\Public\" -Force # 获取当前登录的普通用户 $currentUser = Get-WmiObject Win32_ComputerSystem | Select-Object -ExpandProperty UserName if (-not $currentUser) { Write-Error "No interactive user logged in, cannot run script as standard user." exit 1 } # 构建用户凭据 $userCredential = New-Object System.Management.Automation.PSCredential($currentUser, (ConvertTo-SecureString "" -AsPlainText -Force)) # 以普通用户身份启动子脚本,指定执行策略 Start-Process powershell.exe -Credential $userCredential -ArgumentList "-ExecutionPolicy Bypass -File `"C:\Users\Public\xyz.ps1`"" -Wait -NoNewWindow
额外注意事项
- 如果你的Intune脚本是设备上下文(用户未登录时执行),需要添加逻辑等待用户登录,或者改用用户上下文的Intune脚本部署(更适合需要用户交互/用户权限的场景)
- 确保子脚本
xyz.ps1中的操作都是普通用户权限能完成的,比如不要写入系统目录、修改注册表HKLM等 - 不需要将普通用户加入管理员组,这违背了你的需求,反而会引入权限风险
内容的提问来源于stack exchange,提问作者Web Dude Guy
相关产品推荐
相关产品推荐

