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

如何在PowerShell中以其他用户身份运行带参数的程序?

把CMD的runas命令转换成PowerShell版本

没问题,我来帮你搞定这个转换!你的原CMD命令是用runas以指定域账户保存凭据,运行带/t参数的程序,在PowerShell里主要注意引号的转义处理就行,因为PowerShell对引号的解析和CMD略有不同。

直接适配的PowerShell命令(最接近原CMD逻辑)

你可以直接在PowerShell里执行runas.exe,只需要调整内部引号的写法:

# 方法1:用单引号包裹内部的双引号
C:\Windows\System32\runas.exe /savecred /user:ourdomain\ouruseracct '"C:\Program Files (x86)\ProjectMatrix\ProjectNotify\ProjectNotify.exe /t"'

# 方法2:用反引号`转义内部双引号
C:\Windows\System32\runas.exe /savecred /user:ourdomain\ouruseracct "`"C:\Program Files (x86)\ProjectMatrix\ProjectNotify\ProjectNotify.exe /t`""

更具PowerShell风格的写法(用Start-Process)

如果你想用上PowerShell的Start-Process cmdlet,也可以这么写,把参数拆分开更清晰:

# 定义runas的参数列表
$runasParameters = @(
    "/savecred",
    "/user:ourdomain\ouruseracct",
    '"C:\Program Files (x86)\ProjectMatrix\ProjectNotify\ProjectNotify.exe /t"'
)

# 启动runas进程
Start-Process -FilePath "C:\Windows\System32\runas.exe" -ArgumentList $runasParameters

小说明

  • 两种写法的效果和原CMD完全一致,都会用ourdomain\ouruseracct账户保存凭据,并运行带/t参数的ProjectNotify.exe。
  • 之所以要处理引号,是因为程序路径里有空格,必须用引号包裹,而PowerShell里如果在双引号字符串里再用双引号,需要转义或者用单引号嵌套,否则会被解析成多个参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:28:51