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

编写双击运行的PowerShell脚本,以其他用户身份执行指定.ps1文件

PowerShell脚本以其他账户执行指定脚本的修正方案

核心问题修正

你原代码里的Start-Process参数顺序确实存在问题:-File是powershell.exe的启动参数,而非Start-Process的参数,必须通过Start-Process的-ArgumentList参数传递给powershell.exe;而-Credential是Start-Process本身的参数,要放在正确的位置。

修正后的完整代码:

$username = 'domain\username' # 建议加上域名或计算机名,格式如DOMAIN\User或PCName\User
$password = 'yourPassword'
$scriptPath = '\\path\to\file\script.ps1'

# 转换密码为安全字符串
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($username, $securePassword)

# 正确调用Start-Process:-Credential是Start-Process的参数,powershell的参数放在-ArgumentList里
Start-Process powershell.exe -ArgumentList "-File `"$scriptPath`"" -Credential $credential -NoNewWindow # -NoNewWindow可选,不弹出新窗口

关键细节说明

  • 用户名建议带上域名或计算机名,避免在域环境下出现身份识别错误
  • 明文写入密码存在安全风险,如果允许交互,建议替换为$credential = Get-Credential,让用户手动输入账户信息,避免密码泄露
  • 如果脚本路径包含空格,必须用双引号包裹路径(代码里的"$scriptPath"就是为了处理这种情况)

满足定期运行、双击启动的配置

双击启动

  • 将修正后的代码保存为.ps1文件
  • 若直接双击无法运行,右键选择「用PowerShell运行」;或者创建快捷方式,目标设置为:
    powershell.exe -ExecutionPolicy Bypass -File "C:\path\to\your\launcher.ps1"
    
    (-ExecutionPolicy Bypass临时绕过执行策略限制,适合测试或信任的脚本)

定期运行

使用Windows任务计划程序配置:

  1. 创建基本任务,设置触发时间(每日/每周等)
  2. 操作选择「启动程序」,程序/脚本填powershell.exe
  3. 添加参数填:
    -ExecutionPolicy Bypass -File "C:\path\to\your\launcher.ps1"
    
  4. 在「常规」选项卡勾选「不管用户是否登录都要运行」,并在「设置」里配置合适的权限

内容的提问来源于stack exchange,提问作者user695752

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 06:47:06