問題は、オフィスに NAS ドライブの認証用の openLDAP サーバーがあることです。コンピュータを再起動するたびに、ユーザーはパスワードを再度入力してドライブにアクセスする必要があります。朝、バッチ スクリプトを実行してドライブにログインするだけでも問題はありませんが、パスワードが生のテキストでファイルに保存されていることを大ボスは気に入りません。
だから私は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)