一回も披露したことのない豆知識

Windows 2000 Proで新しいユーザーを作成した後、「ユーザーは次回ログオン時にパスワードの変更が必要」のチェックを入れるにはGUIでの操作以外の方法(例えば、レジストリ、特定ファイルなどを弄る)がありませんか。ご存知の方、ぜひ教えてください。

A 回答 (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
    • good
    • 0

ドメイン環境でユーザーを大量に作成するのが大変だからGUIからではなくCUIからやりたいというのはたまに聞きますが、ローカルだとそんなに手間がかからないので。

。。う~ん。

Windows2000リソースキットのaddusers.exe を入手できれば、そのようなことが実現できるかと思います。

もし、ユーザーを大量に作るだけならnet userコマンドに/add付けてバッチで流せば一括作成できるので、その後にちょこちょこGUIからチェックつけるのはダメでしょうか。

参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/128ad …
    • good
    • 0

レジストリエディタで


HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon 配下に

DefaultDomainName REG_SZ・・・自動ログオンするドメイン名。ドメイン参加でない場合はマシン名
DefaultUserName REG_SZ ・・・自動ログオンするユーザー名
DefaultPassword REG_SZ ・・・自動ログオンするユーザーのパスワード
AutoAdminLogon REG_SZ 1

の値を設定すればよいらしいです。

この回答への補足

ありがとうございます。ただし、オートログオンをさせたいではなく、今まで使ったパスワードを強制的にユーザーに変更させたいです。

補足日時:2006/02/01 16:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報