作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个脚本,我需要在其中以管理员身份运行一个命令。当我运行此命令时,脚本出现 1734 错误。
我的脚本非常基础:
runas /user:Administrator "myexec.exe \"param with spaces\" otherparam -Djava.ext.dirs=%JAVA_EXT_DIRS%"
问题来自变量 JAVA_EXT_DIRS,它有点大。
最佳答案
这是一个老问题,但我现在在 Windows 10 上使用 runas 命令遇到了同样的问题。事实证明,program 参数有一个最大长度,必须低于 995 个字符。
例如,这个命令仍然有效:
runas /user:someuser /savecreds "cmd.exe 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
这里的程序参数有994个字符,它应该打开一个新的命令提示符。但是,如果您在该参数中再添加一个 1,执行将失败并显示 1734: The array bounds are invalid.
错误。
如果您将 program 参数进一步增加到 1026 个字符,错误将更改为 -2147024809:参数不正确。
。
命令行参数的常规限制似乎要大得多(我在 SO 上阅读了大约 8191 个字符),所以这似乎是 runas.exe 本身的问题。
编辑:
当我尝试使用带有 -Credential
标志的 PowerShell 脚本时,我什至遇到了类似的问题,如下所示:
$username = "username"
$password = "password"
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credentials = New-Object System.Management.Automation.PSCredential $username, $securePassword
$argument = $args[0]
Start-Process -FilePath "C:\path\to\my.exe" -Credential $credentials -ArgumentList "-arg $argument"
所以这可能是底层 Windows 机制的问题,而不是 runas.exe 本身的问题。
关于windows - 1734 : The array bounds are invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9582938/
我是一名优秀的程序员,十分优秀!