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

Python通过subprocess调用runas时密码输入失败报错求助

问题解决:subprocess调用runas输入密码失败

你的问题确实和换行符有关,还有一处参数格式错误,下面是具体修正方案:

错误原因

  1. 缺少换行符:runas等待密码输入时,需要输入完成后按回车确认,原代码只传入了密码字符串,没有添加Windows系统的换行符\r\n,导致runas无法识别输入结束。
  2. 路径参数多余引号:用subprocess.Popen的列表传参时,不需要给路径加额外双引号,subprocess会自动处理带空格的路径。原代码里的"C:\\foo\\bar.bat"会被runas识别为包含引号的路径,导致找不到目标脚本。

修正后的代码

import subprocess as sp

# 去掉路径的多余引号,列表传参无需手动加引号
prog = sp.Popen(
    ['runas', '/user:user@domain.com', '/netonly', 'C:\\foo\\bar.bat'], 
    stdin=sp.PIPE,
    encoding='utf-8'  # 加上encoding参数,无需手动encode字符串
)
# 密码后添加\r\n模拟手动回车操作
prog.stdin.write('p@ssw0rd\r\n')
prog.communicate()

补充说明

  • 添加encoding='utf-8'后,直接传入字符串即可,不用再手动调用encode方法,代码更简洁。
  • 生产环境将密码存储在密钥保管库的方案符合安全规范,无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 06:48:25