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