【发布时间】:2022-12-15 17:26:58
【问题描述】:
我正在构建一个自动化的工作流程(使用 Saltstack),它将加密的密码传递给需要加入域的系统,如下所示:
netdom join %computername% /domain:domain.com /UserD:user /PasswordD:passwrd
可以使用另一个脚本解密加密密码并将其输入上述行。困难在于存储这个临时加密密码。到目前为止,我只能想到两种方法,这两种方法都不可取:
- RAMDISK - 没有内置的创建方式,因此需要依赖第三方,不好
- 环境变量 - 持久变量存在于注册表中,也就是磁盘上,所以仍然不好
有什么建议么?
【问题讨论】:
-
普通变量根本不是持久的。顺便提一句。你如何解密密码?如果它可以自动完成,那么它仍然不安全
-
抱歉,我说错了,据我所知,除非用 setx /M 这样做,否则它不是持久的?关于解密,在一次性请求密码之前使用随机散列作为“盐”,并使用相同的散列在服务器上进行解密。此哈希对于每个请求都是唯一的。我绝对不是专家,但看起来适合我的需要。
-
好的,那么你已经回答了你的问题。不要使用
setx,而是使用set -
谢谢 Jeb,那么您是在建议使用环境变量就足以完成这项任务了吗?
-
环境变量 (
set) 在当前cmd进程中设置(及其在设置变量后创建的子进程)并在相应进程结束时销毁。它对其他进程(父进程或无关进程)不可见。 Ramdisk 中的数据可以从任何地方读取。所以环境变量比 ramdisk 更安全(虽然不是防弹)
标签: windows cmd salt-stack