如何使用Python添加Windows凭据?

2024-03-29 00:27:17 发布

您现在位置:Python中文网/ 问答频道 /正文

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

这是当前的代码

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凭据而不是常规凭据。在

我正在Windows10计算机上使用python2.7。在

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


Tags: pathimport程序网络urltargetosusername
1条回答
网友
1楼 · 发布于 2024-03-29 00:27:17

我很确定您可以通过创建一个.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会话。在

相关问题 更多 >