带特殊字符的密码参数

Posted

技术标签:

【中文标题】带特殊字符的密码参数【英文标题】:Password parameter with special characters 【发布时间】:2017-11-10 17:02:25 【问题描述】:

我在这里和整个网络上浏览了大量关于 Powershell 中特殊字符的帖子,但无论我到目前为止尝试了什么,我的命令都会继续处理特殊字符。我正在尝试使用以下命令生成密钥表:

ktpass -out bosso.keytab -princ serviceAccount@DOMAIN.COM -pass "XX&XX"XX&" -kvno 255 -ptype KRB5_NT_PRINCIPAL -crypto AES256-SHA1

我尝试将密码分配给变量,使用反引号转义,双引号和转义,单引号。我不知道还能在这里尝试什么。

【问题讨论】:

您如何将 ktpass 称为它不是 PowerShell 命令?通过 PS 脚本? 它不是明确的 powershell 命令,但它可以在 PS 中运行,就像在 cmd 中一样。如果在 CMD 中更容易逃避密码问题,我会全神贯注。我确实在那里尝试过。 你在这一切中使用了变量吗?如果没有并且您有 PS3.0+,那么只需使用停止解析参数。 ktpass --% -out....。这当然是假设 cmd 没有任何问题。您是否使用外部单引号作为内部双引号? ^ 将是您可以使用的 cmd 中的转义字符 如果你更清楚你需要什么转义(即你得到什么错误)以及你所说的“我试过使用反引号”是什么意思会有所帮助。因为你有一个带有双引号的双引号字符串,而简单的转义是一个反引号"XX`"XX" - 所以要么你尝试了反引号但没有尝试,要么这不是问题所以我猜测没有看到错误还不够好。或将其与 "XX""XX" 加倍作为参考,& 不是 powershell 双引号字符串中的特殊字符。大多数情况下,只有反引号、其他引号和美元是。 我不知道 Powershell 中的停止解析选项,但确实做到了!非常感谢。 【参考方案1】:

感谢马特的有用评论!我不知道停止解析参数,但使用 ktpass --% ... 阻止了 Powershell 将引号解释为命令的一部分。

【讨论】:

你应该“自我接受”你的答案,因为 2 天过去了。为此,您将获得额外的 15 分。更重要的是,这也将标记绿色中回答的问题,以帮助其他可能在未来偶然发现这个问题的 Google 搜索者。

以上是关于带特殊字符的密码参数的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何将密码(包含特殊字符)作为命令行参数传递?

URL中的特殊字符

密码中有特殊的字符IOS如何处理 IOS中URL包含中文参数的问题

地址栏传参,加密参数中特殊字符处理问题

http、https请求URL中带有&等特殊字符的解决方法

js 如何判断输入的字符串中含有特殊字符。最好有例子啊