所以问题是我们有一个 openLDAP 服务器,用于在办公室对我们的 NAS 驱动器进行身份验证。每次重新启动计算机时,用户都必须再次输入密码才能访问驱动器。早上简单地运行一个批处理脚本来登录他们的驱动器就可以了,但是大老板不喜欢他们的密码只是放在文件中的原始文本中。
所以我一直在插入 python 来尝试获取一个简单的程序来从 Windows 凭据中检索他们的密码并将其扔到 os.system 中的 NET USE 中:
os.system("net use X: \\\\x.x.x.x password /user:username@domain.com")
我可以从打开文件并从行读取的变量中简单地从文件中检索用户名。问题是密码。
test_a = open('passtest.cfg', 'r')
test_b = open('passtest2.cfg', 'r')
test2_a = test_a.readline()
test2_b = test_b.readline()
drivepass = keyring.get_password(test2_a, test2_b)
问题似乎是密钥环出于某种原因不喜欢从变量中读取。至少我似乎无法弄清楚为什么它没有。如果我使用它就可以了:
drivepass = keyring.get_password("x.x.x.x", "username@domain.com")
真正的问题是我们需要它足够简单,我们可以将它从一个工作站移动到另一个工作站,只需在一个文件中更改 username@domain.com 并运行它。所以最终最终产品看起来像
os.system("net use X: \\\\x.x.x.x\foldername" + drivepass + "/user:" + test2_b)