人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

「ユーザは次回ログオン時にパスワード変更が必要」のオプションを使い使用者にパスワードを設定してもらおうと思っています。
対象ユーザー毎に設定したいので、
スクリプト等で、外部テキスト(TXT)からユーザーを読み込み対象ユーザーに設定したいと思っております。
環境は、
Windows2003Server Active Directory
対象ユーザーのOUは複数,ADSI等はインストールできません。

再質問で申し訳ございません。
300ptずつ配分しますので、ソース付で回答願います。

●質問者: anim130M
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:Active Directory txt インストール オプション スクリプト
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● memo77
●500ポイント

回答がつかないようなので、自分の勉強もかねて書いてみました。

2,3ユーザーでしかテストしていないので、使用は自己責任で。

'【書換必須】ユーザーを列挙したファイルパス。ユーザーごとに改行。
strPath = "C:\Documents and Settings\Administrator\デスクトップ\Users.txt"
'【書換必須】ドメインのLDAP指定
strLDAP = "LDAP://dc=example,dc=co,dc=jp"

Const ADS_SCOPE_SUBTREE = 2

Set fso = CreateObject( "Scripting.FileSystemObject" )
Set ts = fso.OpenTextFile( strPath, 1 )
 lines = Split( ts.ReadAll, vbCrLf )
 ts.Close

Set dicUsers = CreateObject( "Scripting.Dictionary" )
For i = 0 to Ubound(lines) - 1
 dicUsers.Add lines(i) , 0
Next

Set objConnection = CreateObject("ADODB.Connection")
 objConnection.Provider = "ADsDSOObject"
 objConnection.Open "Active Directory Provider"

Set objCommand = CreateObject("ADODB.Command")
Set objCommand.ActiveConnection = objConnection
 objCommand.Properties("Page Size") = 1000
 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
 objCommand.CommandText = "SELECT distinguishedName,CN FROM '" & strLDAP & "' WHERE objectCategory='user'"

Set objRecordSet = objCommand.Execute
 objRecordSet.MoveFirst

Do Until objRecordSet.EOF
 strDN = objRecordSet.Fields("distinguishedName").Value
 IF dicUsers.Exists(objRecordSet.Fields("CN").Value) Then
 Set objUser = GetObject("LDAP://" & strDN)
 '最初にかならず狙ったユーザーが引っかかるかテスト
 MsgBox objUser.Name
    '大丈夫だと思ったら、MsgBoxをコメントアウトして、下記2行のコメントアウトを外す
 'objUser.pwdLastSet = 0
 'objUser.SetInfo
 End If
 objRecordSet.MoveNext
Loop

MsgBox "Finish!"

http://www31.atwiki.jp/memo77/pages/27.html

◎質問者からの返答

望みどおりのソースです。

ありがとうございます。


2 ● haruo-31
●300ポイント

ADSIはデフォルトで使えます。インストールする必要はありません。

Windows2000以降、WMIとADSIはWindowsに標準で実装されているインタフェースです。

前回提示したコードを、自分のユーザに対して実行してみてください。

strName="EzADUser"

というのを、

strName="あなたのユーザ名"

とすると、あなたのアカウントのパスワードが期限切れになるはずです。

http://q.hatena.ne.jp/1206875453

VBSに関してもし不明点があれば、コメントを開放して質問いただければ何かしら助言することはできると思います。

◎質問者からの返答

ありがとうございます。

ADSIに関しては、上司からの承認が出なかったので、

今回は保留とさせていただきました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ