我有一個連接到服務器程序的Python客戶端程序。 在客戶端程序中,我想提示用戶輸入他們的Windows用戶名,然後要求他們輸入新密碼。如何提示用戶輸入密碼並使用該輸入來更改Windows密碼?
我打算將用戶名和密碼發送到服務器程序,然後運行PowerShell命令更改密碼。
有沒有一種方法可以在下面的程序中從用戶那裏獲取密碼,並使用該輸入將新密碼提供給Powershell?
目前它不會對給出的密碼做任何事情。用戶必須再輸入2次密碼。我只想提供原始密碼並將其用於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' 的對象有沒有屬性 '格式'
您需要格式化您的命令,包括在subprocess.call方法您的密碼變量。 – Kyle
可以在PowerShell命令中包含密碼嗎? – Prox
對於subprocess.call,您只需傳遞組成您的命令的字符串列表。我會建議使用str.format()方法來構建一個命令。 – Kyle