ドメインアカウントでcmd.exeを使用してユーザーのパスワードを変更したい。
私は試した
Net User user_name * /domain
ユーザーが別のドメインにいるため、機能しません。どのドメインユーザーが属しているかを指定するにはどうすればよいですか?
以下のコマンドを使用して、ユーザーパスワードをリセットできます。
dsquery user -samid username | dsmod user -pwd new_password
ドメインコントローラーとしてログインした場合は、以下のコマンドを実行できます
Net User username new_password
ワークステーションから以下のNet Userコマンドを使用することもできます
Net User username new_password /domain
ゲームにWMICを含めるだけです...
ただし、いくつかの前提条件があります。WinRMを有効にして、リモートマシンのファイアウォール経由で許可する必要があります。DCと同じサブネットを使用できれば、へのアクセス)。
最初に他のドメインに対して認証を行い、次にそのドメインで目的のコマンドを実行する必要があります。
「-」記号はWMIの特殊文字なので、一重引用符に注意してください。
wmic/node: 'IP_address_of_any_machine_in_target_domain'/user: 'the_other_domain\any_domain_admin_account' process call create "cmd/c" Net User username new_password/domain ""
他のドメインのドメインアカウントのパスワードを要求されますが、アスタリスクを使用してユーザーの新しいパスワードを入力することはできないので、コマンドに直接入力することをお勧めしますライン。
残念ながら、パスワード変更の成功に関する出力はありません。そのため、成功または失敗にかかわらず、WMIクエリの出力のみを受信し、新しい資格情報が設定されているかどうかを確認する必要があることを強くお勧めします。パスワードをプレーンテキストで入力するのは少し悪いことですが、それが現在私が知っている唯一の方法です。バッチファイルを使用してテキストファイルからパスワードを読み取り、クエリに入力する回避策がありますが、それは私には無意味なようです。
以下の行:
wmic/node: 'IP_address_of_a_machine_in_target_domain_the_user_has_access_to'/user: 'the_other_domain\the_machine_the_user_has_access_to' computersystem get domain
パスワードの変更が成功した場合は、リモートマシンのドメインが返されます。
Linuxマシンのsmbpasswdで簡単に行うことができます。 Windowsでは、Linuxサブシステムをインストールして実行する必要があります。
smbpasswd -U <user> -r <IP address of DC>
Samba confファイル(/etc/samba/smb.conf
)ネットワークラインを次のように変更してネットワークエラーが発生した場合:
interfaces = 127.0.0.0/8 lo eth0