FC2ブログ
MSLabo: MCP取得や実務用に自宅でWindowsサーバを検証・自習してます&たまに日記
自宅サーバにて、Windows 2008, MSCS, Active Directory, Exchange, Sharepoint, System Center(SCCM, SCOM, FCS), SQL Serverの自習、検証をした内容を記載していきたいと思います。
スポンサーサイト
--年--月--日 (--) --:-- | 編集
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ある特定のOU以下のユーザアカウントを無効化/有効化する
2009年08月10日 (月) 20:27 | 編集
AD上のユーザを特定のOU以下にいるユーザはすべて無効にする、また
あるOU以下のユーザはすべて有効化する必要があり、対象OUを設定ファイルに
記述することでそのOUを対象に動作するVBScriptを作りました食パン
つっこみどころ満載かと思いますが、まずは動いたので、OK牧場

■OU指定ファイル(例) "C:\ADUserMng\aduser_disableToEnable_OU.txt"
GC://ou=xxxxxxx,ou=xxxxxx,ou=xxxx,,dc=xxxxx,dc=local
GC://ou=xxxxxxx,ou=xxxxxx,dc=xxxxx,dc=local
GC://ou=xxxxxxx,ou=xxxxxx,dc=xxxxx,dc=local

■無効化されたユーザがいればすべて有効にするVBScript
On Error Resume Next

Const ADS_UF_ACCOUNTDISABLE = 2

Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Dim objOUFile ' OU指定ファイル用

objOUFile = "C:\ADUserMng\aduser_disableToEnable_OU.txt"

Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then

Set objFile = objFSO.OpenTextFile(objOUFile)
If Err.Number = 0 Then
Do While objFile.AtEndOfStream <> True
objGCName = objFile.ReadLine
WScript.Echo objGCName & "----------OU以下の処理を開始します。"
'WScript.Echo objGCName

objCommand.CommandText = _
"<"&objGCName&">;(objectCategory=User)" & _
";userAccountControl,distinguishedName;subtree"
Set objRecordSet = objCommand.Execute

intCounter = 0
Do Until objRecordset.EOF
intUAC=objRecordset.Fields("userAccountControl")
If intUAC AND ADS_UF_ACCOUNTDISABLE Then
WScript.echo objRecordset.Fields("distinguishedName") & " が無効化されています。"

strUser = objRecordset.Fields("distinguishedName")
Set objUser = GetObject("LDAP://" & strUser)
objUser.Put "userAccountControl", intUAC XOR ADS_UF_ACCOUNTDISABLE
objUser.SetInfo
WScript.echo strUser & " を有効化しました。"

intCounter = intCounter + 1
End If
objRecordset.MoveNext
Loop

WScript.Echo VbCrLf & objGCName & "----------OU以下の処理を終了しました。"
WScript.Echo VbCrLf & "トータル " & intCounter & " のユーザアカウントを有効化しました。"

Loop
objFile.Close
Else
WScript.Echo "ファイルオープンエラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If

Set objFile = Nothing
Set objFSO = Nothing

objConnection.Close

■有効化されたユーザがいればすべて無効にするVBScript
On Error Resume Next

Const ADS_UF_ACCOUNTDISABLE = 2

Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Dim objOUFile ' OU指定ファイル用

objOUFile = "C:\ADUserMng\aduser_enableToDisable_OU.txt"

Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then

Set objFile = objFSO.OpenTextFile(objOUFile)
If Err.Number = 0 Then
Do While objFile.AtEndOfStream <> True
objGCName = objFile.ReadLine
WScript.Echo objGCName & "----------OU以下の処理を開始します。"

objCommand.CommandText = _
"<"&objGCName&">;(objectCategory=User)" & _
";userAccountControl,distinguishedName;subtree"
Set objRecordSet = objCommand.Execute

intCounter = 0
Do Until objRecordset.EOF
intUAC=objRecordset.Fields("userAccountControl")
If intUAC XOR ADS_UF_ACCOUNTDISABLE Then
WScript.echo objRecordset.Fields("distinguishedName") & " が有効化されています。"

'intUAC AND ADS_UF_ACCOUNTDISABLE 無効状態

strUser = objRecordset.Fields("distinguishedName")
Set objUser = GetObject("LDAP://" & strUser)
objUser.Put "userAccountControl", intUAC OR ADS_UF_ACCOUNTDISABLE
objUser.SetInfo
WScript.echo strUser & " を無効化しました。"

intCounter = intCounter + 1
End If
objRecordset.MoveNext
Loop

WScript.Echo VbCrLf & objGCName & "----------OU以下の処理を終了しました。"
WScript.Echo VbCrLf & "トータル " & intCounter & " のユーザアカウントを無効化しました。"

Loop
objFile.Close
Else
WScript.Echo "ファイルオープンエラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If

Set objFile = Nothing
Set objFSO = Nothing

objConnection.Close


動かなかったり、何かあっても当方は責任持てませんので、あしからずぴよぴよ

FC2 サーバカテゴリランキングを見る にほんブログ村 IT技術ブログ Windowsサーバカテゴリランキングを見る ブログセンタ Windowsランキングを見る BLOG RANKING サーバー構築・運用ブログランキングを見る
スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する
URL :
コメント :
パスワード :
秘密 : 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
Powered by . / Template by sukechan.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。