私はサーバープログラムに接続する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を取得する:あなたは、コマンド文字列にパスワードをフォーマットする必要が
あなたはsubprocess.call方法でパスワードの変数を含めるようにコマンドをフォーマットする必要があります。 – Kyle
PowerShellコマンドにパスワードを含めることは可能ですか? – Prox
subprocess.callの場合は、コマンドを構成する文字列のリストを渡すだけです。 str.format()メソッドを使用してコマンドを作成することをお勧めします。 – Kyle