Administratorsからグループ・ユーザーを削除するVBS
ローカルAdministratorsからグループ・ユーザーを削除するVBScriptを作成したので、備忘録として記事にしておきます。
ActiveDirectoryのグループポリシーの機能で、複数端末に一括設定する時などに使用出来ると思います。
以下がScriptの内容です。
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' PG : 不要なグループの削除
' Author : 2018/04/09 www.adlink-kk.ne.jp
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''
' 定数
'
'''''''''''''''''''''''''''''
Const e = "NG"
Const c = "OK"
Const MACHINE_NAME = "."
Const GROUP_PATH = "Administrators"
Const LOCAL_ADMIN = "Administrator"
Const DOMAIN_ADMINS = "Domain Admins" '必要に応じて変更
Const DOMAIN_PERSONALUSERS = "PersonalUsers" '必要に応じて変更
'''''''''''''''''''''''''''''
' 変数
'
'''''''''''''''''''''''''''''
Private GroupMember(3)
'''''''''''''''''''''''''''''
' 処理
'
'''''''''''''''''''''''''''''
Main()
'''''''''''''''''''''''''''''
' メイン処理
'
'''''''''''''''''''''''''''''
Sub Main()
On Error Resume Next
GroupMember(0) = LOCAL_ADMIN
GroupMember(1) = DOMAIN_ADMINS
GroupMember(2) = DOMAIN_PERSONALUSERS
Set Admins = GetObject("WinNT://" & MACHINE_NAME & "/Administrators")
For Each Member In Admins.Members
flg = 0
For i = 0 To UBound(GroupMember)
If Member.Name = GroupMember(i) Then
flg = 1
End If
Next
If flg = 0 Then
Admins.Remove(Member.ADsPath)
Else
flg = 0
End If
Next
Term(c)
Set Admins = Nothing
If Err Then
Term(e)
End If
End Sub
''''''''''''''''''''''''''''''''''
' 事後処理
'
''''''''''''''''''''''''''''''''''
Sub Term(ByVal flg)
On Error Resume Next
Set objNetWork = WScript.CreateObject("WScript.Network")
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile fso.BuildPath(fso.GetParentFolderName(WScript.ScriptFullName), flg & "_" & objNetWork.ComputerName & "_" & objNetWork.UserName & ".txt")
Set objNetWork = Nothing
Set fso = Nothing
WScript.Quit
End Sub
