- ベストアンサー
GUI以外の方法で「ユーザーは次回ログオン時にパスワードの変更が必要」のチェックを入れたい
Windows 2000 Proで新しいユーザーを作成した後、「ユーザーは次回ログオン時にパスワードの変更が必要」のチェックを入れるにはGUIでの操作以外の方法(例えば、レジストリ、特定ファイルなどを弄る)がありませんか。ご存知の方、ぜひ教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
WSHを使って実現できます。 下記の内容をメモ帳などでコピペして「パスワード変更.vbs」などの名前で保存して下さい。 パスワード変更.vbs ユーザー名 ・・という風に引数にユーザー名を与えるか、引数を与えず直接実行した場合は 入力ボックスが表示されるので、そちらからユーザー名を入力して下さい。 ユーザーの有無を確認した後、設定を変更します。 バッチ処理したい場合は「WScript.Echo」で吐いているメッセージを削除するか コメントアウトした方が使いやすいと思います。 ちなみに本スクリプトはローカルアカウント用でADアカウントの場合は 多少手を加える必要があります。 '----------- Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000 '「パスワードを無期限にする」 Const ADS_UF_PASSWD_CANT_CHANGE = &H40 '「ユーザーはパスワードを変更できない」 If WScript.Arguments.Count < 1 Then ' 引数がない場合にダイアログからユーザー名入力 Do Until Not strUserName = "" '入力されるまで繰り返す strUserName = InputBox("ユーザー名を入力して下さい。") Loop Else ' 引数をユーザー名としてセット strUserName = WScript.Arguments.Item(0) End If ' ローカルコンピュータ名とローカルアカウント名取得 Set oWshNetwork = CreateObject("WScript.Network") strComputerName = oWshNetwork.ComputerName ' ユーザーが存在すれば設定変更、存在しなければ終了 strADSIPath = "WinNT://" & strComputerName & "/" & strUserName If ExistObject(strADSIPath) Then Set oUser = GetObject(strADSIPath) '「パスワードを無期限にする」を無効化 If oUser.UserFlags AND ADS_UF_DONT_EXPIRE_PASSWD Then oUser.UserFlags = oUser.UserFlags XOR ADS_UF_DONT_EXPIRE_PASSWD '「ユーザーはパスワードを変更できない」を無効化 If oUser.UserFlags AND ADS_UF_PASSWD_CANT_CHANGE Then oUser.UserFlags = oUser.UserFlags XOR ADS_UF_PASSWD_CANT_CHANGE '「ユーザーは次回ログオン時にパスワードの変更が必要」を有効化 oUser.PasswordExpired = 1 oUser.SetInfo Else WScript.echo "ユーザーが存在しません。" WScript.Quit(2) End If WScript.Echo "完了" Set oWshNetwork = Nothing: Set oUser = Nothing Function ExistObject(strADSIPath) ' 変数定義 Dim oTemp Dim bObjExist On Error Resume Next Set oTemp = GetObject(strADSIPath) If Err.Number = 0 Then bObjExist = True Else bObjExist = False Err.Clear '初期化 End If ExistObject = bObjExist Set oTemp = Nothing End Function
その他の回答 (2)
- latte4202
- ベストアンサー率76% (19/25)
ドメイン環境でユーザーを大量に作成するのが大変だからGUIからではなくCUIからやりたいというのはたまに聞きますが、ローカルだとそんなに手間がかからないので。。。う~ん。 Windows2000リソースキットのaddusers.exe を入手できれば、そのようなことが実現できるかと思います。 もし、ユーザーを大量に作るだけならnet userコマンドに/add付けてバッチで流せば一括作成できるので、その後にちょこちょこGUIからチェックつけるのはダメでしょうか。
- galoon
- ベストアンサー率28% (38/133)
レジストリエディタで HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon 配下に DefaultDomainName REG_SZ・・・自動ログオンするドメイン名。ドメイン参加でない場合はマシン名 DefaultUserName REG_SZ ・・・自動ログオンするユーザー名 DefaultPassword REG_SZ ・・・自動ログオンするユーザーのパスワード AutoAdminLogon REG_SZ 1 の値を設定すればよいらしいです。
補足
ありがとうございます。ただし、オートログオンをさせたいではなく、今まで使ったパスワードを強制的にユーザーに変更させたいです。