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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:30:47