2016-08-11 11 views
2

デスクトップにネットワークショートカットを自動的にインストールしてドライバをダウンロードするプログラムを作成しようとしていますが、インストール後にショートカットにアクセスするには、自分の仕事を入力する必要がありますプリンタネットワークのドメインの資格情報私はPython用のキーリングライブラリを使ってみましたが、失敗しました。また、いくつかのフォーラムで投稿したwin32wnet.WNETADDCONNECTION2()も使用しようとしましたが、失敗しました。ここでPythonを使用してWindows資格情報を追加するにはどうすればよいですか?

は私の完全なプログラムで、現在

import os, winshell, keyring, win32wnet 
from win32com.client import Dispatch 
    #Add Windows Credentials 
    #************************** 

    url = r'\\LINKTOTHENETWORK' 
    win32wnet.WNetAddConnection2(0, None, url, None, USERNAME, PASSWORD) 
    keyring.set_password(url, USERNAME, PASSWORD) 
    keyring.get_password(url, USERNAME) 

    #************************** 
    # This is where I am having troubles. 

    # Create the shortcut 
    desktop = winshell.desktop() 
    path = os.path.join(desktop, "MYLINK.lnk") 
    target = url 

    # Set path and save 
    shell = Dispatch('WScript.Shell') 
    shortcut = shell.CreateShortCut(path) 
    shortcut.Targetpath = target 
    shortcut.save() 

    # Open the shortcut 
    os.startfile(target) 

コード私は私のユーザー名とパスワードを要求Kivyを使用してインターフェイスを持っているし、私は、「インストール」ボタンを押すと、それは私のユーザー名にドメインを追加しています(ドメイン\ユーザー名)。キーリングを使用すると、間違った場所に正しく表示されていたので、問題はないはずです。一般資格情報ではなくWindows資格情報を追加する方法が見つかりません。

私はWindows 10コンピュータでpython2.7を使用しています。

誰かがライブラリを知っていれば、私はこれを使うことができます。ありがとう!

答えて

0

これは、.batファイルを作成してプログラムで実行することで実現できると確信しています。

例:

def bat_create_with_creds(id, pwd): 
    """create Batch file to init printer domain creds with variables""" 

    auth_print= open("auth_print.bat", "w") 

    auth_print.write("NET USE \\printserverip /USER:%"+id+"% %"+pwd+"%") 
    auth_print.close() 

私はあなたの特定のユースケースでこれを行っていませんが、initにとってはうまく動作します。例えばウィンドウmstscを使ったrdpセッション。

+0

あなたの提案はありがたいことですが、UsernameとPasswordはこの方法でCredential Managerに保存されないので、コンピュータを再起動してショートカットを再度開くと、UsernameとPasswordをもう一度入力するように求められます。私はプログラムが私のために資格証明を永久に追加することを望んでいました。ありがとう、結構です! – ryguy20

+0

upvoteを選択することを忘れないでください。 – glls

関連する問題