如何使用Python添加Windows凭据?

如何使用Python添加Windows凭据?,python,windows,python-2.7,Python,Windows,Python 2.7,我正在尝试创建一个程序,自动在桌面上安装网络快捷方式并下载驱动程序(它是我工作的打印服务器),但为了在安装快捷方式后访问它,我需要在打印机网络的域下输入我的工作凭据。我尝试使用Python的keyring库,但没有成功,我还尝试使用win32wnet.wnetadconnection2(),我在几个论坛上看到过它,但对我来说也不成功 这是目前的代码 import os, winshell, keyring, win32wnet from win32com.client import Dispat

我正在尝试创建一个程序,自动在桌面上安装网络快捷方式并下载驱动程序(它是我工作的打印服务器),但为了在安装快捷方式后访问它,我需要在打印机网络的域下输入我的工作凭据。我尝试使用Python的keyring库,但没有成功,我还尝试使用win32wnet.wnetadconnection2(),我在几个论坛上看到过它,但对我来说也不成功

这是目前的代码

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的界面,它询问我的用户名和密码,然后我点击“安装”按钮,它将域添加到我的用户名中(domain\Username)。使用keyring,它正确地显示在错误的区域中,所以这不应该是一个问题,我只是找不到一个方法来添加Windows凭据而不是常规凭据

我正在Windows 10计算机上使用python2.7


如果有人知道我可以使用的图书馆或其他方法,那就太好了。谢谢

我敢肯定,您可以通过创建一个.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中工作得非常好。例如,使用windows mstsc的rdp会话。

您的建议有效,谢谢,但是用户名和密码没有使用此方法存储在凭据管理器中,因此当我重新启动计算机后重新打开快捷方式时,它会提示我再次输入用户名和密码。我希望程序能永久地为我添加凭证。谢谢你!