Python 如何提示用户输入密码并使用该输入更改Windows密码?

Python 如何提示用户输入密码并使用该输入更改Windows密码?,python,powershell,Python,Powershell,我有一个连接到服务器程序的Python客户端程序。 在客户端程序中,我想提示用户输入他们的Windows用户名,然后要求他们输入新密码 我将向服务器程序发送用户名和密码,并运行PowerShell命令更改密码 有没有一种方法可以让我从下面程序中的用户那里获取密码,并使用该输入将新密码提供给Powershell 目前,它不会对给定的密码执行任何操作。用户必须再输入两次密码。我只想获取提供的原始密码,并使用该密码将其传递给PowerShell import subprocess user = in

我有一个连接到服务器程序的Python客户端程序。 在客户端程序中,我想提示用户输入他们的Windows用户名,然后要求他们输入新密码

我将向服务器程序发送用户名和密码,并运行PowerShell命令更改密码

有没有一种方法可以让我从下面程序中的用户那里获取密码,并使用该输入将新密码提供给Powershell

目前,它不会对给定的密码执行任何操作。用户必须再输入两次密码。我只想获取提供的原始密码,并使用该密码将其传递给PowerShell

import subprocess

user = input('Enter Windows Username: ')
password = input('Enter New Password: ')

subprocess.call(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", "Set-ADAccountPassword " + user + " -NewPassword $newpwd –Reset"])
更新

import subprocess

user = input('Enter Windows Username: ')
password = input('Enter New Password: ')

command = subprocess.call(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", "Set-ADAccountPassword " + user + " -NewPassword {0} –Reset"])
formatted_command = command.format(password)

print(formatted_command)

我得到了一个错误AttributeError:“init”对象没有属性“format”

您需要将密码格式化为命令字符串。警告,在使用密码生成命令之前,应先清理密码,因为它可能会导致安全问题

command = "This is my cool command with a parameter included: {0}"
password = "super_secret_password"

formatted_command = command.format(password)

print(formatted_command)
要格式化命令,可以尝试几种不同的方法

command = subprocess.call([
    "C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe",
    "Set-ADAccountPassword {0}".format(user),
    "-NewPassword {0}".format(password),
    "–Reset"
])

# OR

command = subprocess.call([
    "C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe",
    "Set-ADAccountPassword",
    user,
    "-NewPassword",
    password,
    "–Reset"
])
也许可以试试这个:

import os

user = input('Enter Windows Username: ')
password = input('Enter New Password: ')

os.system("net user " + user + " " + password)
os.system(“网络用户”+用户+“”+密码)
的意思是:
“网络用户代理新密码”

通过使用此命令,您可以直接更改用户的密码
使用CMD(Windows命令行)


要成功运行此操作,请以管理员身份运行文件

您需要格式化命令,以便在subprocess.call方法中包含密码变量。是否可以在PowerShell命令中包含密码?对于subprocess.call,您只需传递组成命令的字符串列表。我建议使用str.format()方法来构建命令。我得到一个AttributeError:'init'对象没有属性'format'