批处理脚本 - 访问Windows凭据管理器密码(或如何加密和使用密码)

时间:2014-09-25 21:40:47

标签: windows batch-file encryption passwords credential-manager

我在SERVER A上有一个批处理脚本,它使用'schtasks'命令激活SERVER B上的计划任务。此命令需要用户名和密码才能访问其他服务器,但我们不希望以纯文本格式存储此数据。有没有办法以非纯文本格式保存此密码?即使密码以纯文本形式传递给'schtasks'命令,也比将其存储在批处理脚本本身更好。

1 个答案:

答案 0 :(得分:1)

你不能使用Kerberos吗?

如果您不能,请尝试查看此Different ways to store a password variable in a Java web application?选项3.您可以使用密钥,并共享密钥以解密所需的凭据,但仍然保护不足。

如果您可以使用Kerberos,只需检查SERVERB是否允许使用Kerberos令牌。它可以是SERVERA上的本地用户或域用户。例如,您启动了SCRIPT.bat'通过' schtasks'作为Script_User_A on SERVERA; Script_User_A是域用户,权限较低。 SERVERB收到任何第一个请求后立即启动对SERVERA的质询/响应,要求Script_User_A证明其身份。 Script_User_A会做到这一点,SERVERB很高兴,一切正常。如果Malicious_User尝试执行' SCRIPT.bat',则SERVERB将发送Malicious_User将无法响应"的挑战,并且SERVERB将知道' SCRIPT.bat'由其他人执行。

使用Kerberos这个挑战/响应机制是免费的:您需要稍微研究一下Microsoft TechNet和API,但值得付出努力,特别是如果您习惯在Windows上开发。