0

所以问题是我们有一个 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)
4

1 回答 1

0

看来我不小心解决了自己的问题。

没用:

drivepass = keyring.get_password(test2_a, test2_b)

作品:

drivepass = keyring.get_password("x.x.x.x", test2_b)

因此,密钥环中的服务 arg 显然不需要是变量。公平地说,尽管无论如何都不需要。希望这条线的某个地方可以帮助其他人。

于 2014-08-26T15:51:53.497 回答