ローカルAdministratorsからグループ・ユーザーを削除するVBScript

ローカルAdministratorsからグループ・ユーザーを削除するVBScript

興味のある方は少ないと思いますが、ローカル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

プログラムカテゴリの最新記事