網域使用者加入本機管理員群組

網域使用者加入本機管理員群組

一、第一種方法,純用Script解決(適用Windows XP Client端)

On Error Resume Next

Const ForReading=1'Read
Const ForWriting=2'Write
Const ForAppending=8'Append
Dim arrClients()
i=0

Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objReadFile=objFSO.OpenTextFile("C:\\Computers.txt",ForReading)
Do until objReadFile.AtEndOfStream
	strLine=objReadFile.ReadLine	
	strComputer=Trim(strLine)
	If strComputer<>"" Then
			ReDim Preserve arrClients(i)
			arrClients(i)= strComputer
			i=i+1
	End If	
Loop
objReadFile.Close

For Each objClient In  arrClients
	strComputer = objClient
	Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")
	Set objUser = GetObject("WinNT://MT.com.tw/user1")
	objGroup.Add(objUser.ADsPath)
Next

Script會去讀取 C:\\Computers.txt 這個檔案所列出的電腦,把user1這個網域使用者帳號,一一加到Client端電腦的本機Administrators群組。

C:\\Computers.tx 是一個單純文字檔,一行一台電腦名稱。FQDN、NETBIOS N或IP都可,只要確定找的到電腦就行了。

 

MT-Client-A1

MT-Client-A2

……………………………

 

執行此程式,必須在操作端機台以網域管理員身分登入執行,才能在透過遠端在每台Client端做這件事。

反之,有加入就有移除機制

 



Const ForReading=1'Read
Const ForWriting=2'Write
Const ForAppending=8'Append
Dim arrClients()
i=0

Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objReadFile=objFSO.OpenTextFile("C:\\Computers.txt",ForReading)
Do until objReadFile.AtEndOfStream
	strLine=objReadFile.ReadLine	
	strComputer=Trim(strLine)
	If strComputer<>"" Then
			ReDim Preserve arrClients(i)
			arrClients(i)= strComputer
			i=i+1
	End If	
Loop
objReadFile.Close


For Each objClient In  arrClients
	strComputer = objClient	
	Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")	
	For Each objUser In objGroup.Members
	    If InStr(objUser.name, "user1") Then
	        objGroup.Remove(objUser.AdsPath)
	    End If
	Next
Next

 

二、Script只負責加人,哪幾台要加由群組原則控制

加入Script

 


strComputer = "."
Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")
Set objUser = GetObject("WinNT://MT.com.tw/user1")
objGroup.Add(objUser.ADsPath)

 

移除Script

On Error Resume Next
strComputer = "."	
Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")	
For Each objUser In objGroup.Members
    If InStr(objUser.name, "user1") Then
        objGroup.Remove(objUser.AdsPath)
    End If
Next

 

使用群組原則管理編輯,建立兩個新的群組原則,一個負責加入,一個負責移除。

image

 

“user1委派管理加入”群組原則,設定登入執行Script

加入啟動時要執行的Script

image

 

要先用”顯示檔案”,把Script存放路徑叫出來

image

 

把Script檔案拷貝進去

image

 

新增加入

image

 

“user1委派管理移除”群組原則,設定同加入,不同的是設定在”關機”的地方。故省略。

把群組原則套用到組織單位電腦就OK了。

image

 

三、不論何種方式,Client端的防火牆最好停用,以確保結果正確性。個人目前做法偏好第一種方式,同時透過群組原則,將網域中所有電腦防火牆都停用。