用vbs從本地 Administrators 組中刪除組
更新時(shí)間:2007年03月29日 00:00:00 作者:
問(wèn):
您好,腳本專(zhuān)家!如何從本地 Administrators 組中刪除組?
-- SB
答:
您好,SB。有一位腳本專(zhuān)家還隱約記得早年一部名為 Branded 的電視節(jié)目,節(jié)目中的主人公(由查克·康納斯扮演)被指控為懦夫并被不光彩地從美國(guó)騎兵隊(duì)開(kāi)除。差不多所有腳本專(zhuān)家都記得它的開(kāi)頭部分:騎兵隊(duì)扯掉該士兵制服上的肩章并將它的劍一折兩斷,然后令其恥辱地快步走出要塞。
為何要憶起這一幕?沒(méi)有什么真正的原因,我們只是認(rèn)為如果每當(dāng)將用戶(hù)或組從本地 Administrators 組中刪除時(shí)都舉行類(lèi)似的儀式會(huì)很酷。不過(guò),在這種理想實(shí)現(xiàn)之前,可以使用與以下類(lèi)似的腳本將組(此例中為 Active Directory 組)從本地 Administrators 組中刪除:
strComputer = "atl-fs-01"
Set objAdmins = GetObject("WinNT://" & strComputer & "/Administrators")
Set objGroup = GetObject("WinNT://fabrikam/finance")
objAdmins.Remove(objGroup.ADsPath)
是的,這非常簡(jiǎn)單,不是嗎?此腳本首先會(huì)將計(jì)算機(jī)的名稱(chēng)(在本例中為 atl-fs-01)賦值給名為 strComputer 的變量。然后,我們就可以使用下面這行代碼綁定到該計(jì)算機(jī)上的本地 Administrators 組:
Set objAdmins = GetObject("WinNT://" & strComputer & "/Administrators")
獲得對(duì) Administrators 組的對(duì)象引用后,我們的下一個(gè)任務(wù)便是創(chuàng)建另一個(gè)對(duì)象引用,它是對(duì)將刪除的組的引用。下面這行代碼就用來(lái)完成該任務(wù):
Set objGroup = GetObject("WinNT://fabrikam/finance")
請(qǐng)注意,引用組帳戶(hù)時(shí)我們使用老式的 Windows NT 式命名約定:fabrikam/finance。為什么會(huì)是這樣?很簡(jiǎn)單:為對(duì)本地用戶(hù)和組進(jìn)行操作,我們不得不使用 WinNT 提供程序。WinNT 提供程序不明白 Active Directory 術(shù)語(yǔ),對(duì)于與以下類(lèi)似的對(duì)象路徑摸不著頭腦:
cn=Finance Users, ou=Finance, dc=fabrikam, dc=com
因此,我們不得不退一步采用老式的帳戶(hù)名:域名/登錄名。但是沒(méi)關(guān)系:所幸 Active Directory 也明白此命名約定。當(dāng)我們請(qǐng)求帳戶(hù) fabrikam/finance 時(shí),Active Directory 對(duì)我們的言語(yǔ)知道得一清二楚。
注意:此問(wèn)題以前提出過(guò),但值得再次提出:是的,您可以使用 WinNT 提供程序訪問(wèn) Active Directory 中的對(duì)象。而且,對(duì)象路徑要簡(jiǎn)單得多,這沒(méi)錯(cuò)。但請(qǐng)不要冒險(xiǎn)行事:請(qǐng)僅在絕對(duì)必要的情況下使用 WinNT 提供程序。為什么這么說(shuō)呢?好吧,舉一個(gè)例子,就用戶(hù)帳戶(hù)而言,通常在與 Active Directory 協(xié)作時(shí)使用的 LDAP 提供程序支持超過(guò) 200 個(gè)屬性;而 WinNT 提供程序僅支持約 20 個(gè)屬性。LDAP 提供程序要強(qiáng)大得多、有用得多。
獲得對(duì)組的對(duì)象引用后,我們所要做的全部工作便是調(diào)用 Remove 方法,將該組從本地 Administrators 組中刪除:
objAdmins.Remove(objGroup.ADsPath)
我們?nèi)匀徽J(rèn)為撕掉該人襯衣上的口袋保護(hù)袋,然后用膝蓋折斷他的訂書(shū)機(jī)會(huì)更酷,但這已經(jīng)可以達(dá)到目的。
當(dāng)然,您要?jiǎng)h除的組可能不是 Active Directory 組,而可能是本地組。這會(huì)成為問(wèn)題嗎?不會(huì);實(shí)際上還要簡(jiǎn)單一點(diǎn)兒。只需直接綁定到本地機(jī)上的組帳戶(hù),然后將它刪除:
strComputer = "atl-fs-01"
Set objAdmins = GetObject("WinNT://" & strComputer & "/Administrators")
Set objGroup = GetObject("WinNT://finance")
objAdmins.Remove(objGroup.ADsPath)
順便說(shuō)一句,從一個(gè)組中刪除另一個(gè)組的過(guò)程與從一個(gè)組中刪除用戶(hù)的過(guò)程完全相同:綁定到目標(biāo)組(此例中為本地 Administrators 組),綁定到要?jiǎng)h除的對(duì)象(無(wú)論是組還是用戶(hù),都沒(méi)有關(guān)系),然后調(diào)用 Remove 方法,將要?jiǎng)h除帳戶(hù)的 ADsPath 作為唯一參數(shù)進(jìn)行傳遞。
您好,腳本專(zhuān)家!如何從本地 Administrators 組中刪除組?
-- SB
答:
您好,SB。有一位腳本專(zhuān)家還隱約記得早年一部名為 Branded 的電視節(jié)目,節(jié)目中的主人公(由查克·康納斯扮演)被指控為懦夫并被不光彩地從美國(guó)騎兵隊(duì)開(kāi)除。差不多所有腳本專(zhuān)家都記得它的開(kāi)頭部分:騎兵隊(duì)扯掉該士兵制服上的肩章并將它的劍一折兩斷,然后令其恥辱地快步走出要塞。
為何要憶起這一幕?沒(méi)有什么真正的原因,我們只是認(rèn)為如果每當(dāng)將用戶(hù)或組從本地 Administrators 組中刪除時(shí)都舉行類(lèi)似的儀式會(huì)很酷。不過(guò),在這種理想實(shí)現(xiàn)之前,可以使用與以下類(lèi)似的腳本將組(此例中為 Active Directory 組)從本地 Administrators 組中刪除:
復(fù)制代碼 代碼如下:
strComputer = "atl-fs-01"
Set objAdmins = GetObject("WinNT://" & strComputer & "/Administrators")
Set objGroup = GetObject("WinNT://fabrikam/finance")
objAdmins.Remove(objGroup.ADsPath)
是的,這非常簡(jiǎn)單,不是嗎?此腳本首先會(huì)將計(jì)算機(jī)的名稱(chēng)(在本例中為 atl-fs-01)賦值給名為 strComputer 的變量。然后,我們就可以使用下面這行代碼綁定到該計(jì)算機(jī)上的本地 Administrators 組:
Set objAdmins = GetObject("WinNT://" & strComputer & "/Administrators")
獲得對(duì) Administrators 組的對(duì)象引用后,我們的下一個(gè)任務(wù)便是創(chuàng)建另一個(gè)對(duì)象引用,它是對(duì)將刪除的組的引用。下面這行代碼就用來(lái)完成該任務(wù):
Set objGroup = GetObject("WinNT://fabrikam/finance")
請(qǐng)注意,引用組帳戶(hù)時(shí)我們使用老式的 Windows NT 式命名約定:fabrikam/finance。為什么會(huì)是這樣?很簡(jiǎn)單:為對(duì)本地用戶(hù)和組進(jìn)行操作,我們不得不使用 WinNT 提供程序。WinNT 提供程序不明白 Active Directory 術(shù)語(yǔ),對(duì)于與以下類(lèi)似的對(duì)象路徑摸不著頭腦:
cn=Finance Users, ou=Finance, dc=fabrikam, dc=com
因此,我們不得不退一步采用老式的帳戶(hù)名:域名/登錄名。但是沒(méi)關(guān)系:所幸 Active Directory 也明白此命名約定。當(dāng)我們請(qǐng)求帳戶(hù) fabrikam/finance 時(shí),Active Directory 對(duì)我們的言語(yǔ)知道得一清二楚。
注意:此問(wèn)題以前提出過(guò),但值得再次提出:是的,您可以使用 WinNT 提供程序訪問(wèn) Active Directory 中的對(duì)象。而且,對(duì)象路徑要簡(jiǎn)單得多,這沒(méi)錯(cuò)。但請(qǐng)不要冒險(xiǎn)行事:請(qǐng)僅在絕對(duì)必要的情況下使用 WinNT 提供程序。為什么這么說(shuō)呢?好吧,舉一個(gè)例子,就用戶(hù)帳戶(hù)而言,通常在與 Active Directory 協(xié)作時(shí)使用的 LDAP 提供程序支持超過(guò) 200 個(gè)屬性;而 WinNT 提供程序僅支持約 20 個(gè)屬性。LDAP 提供程序要強(qiáng)大得多、有用得多。
獲得對(duì)組的對(duì)象引用后,我們所要做的全部工作便是調(diào)用 Remove 方法,將該組從本地 Administrators 組中刪除:
objAdmins.Remove(objGroup.ADsPath)
我們?nèi)匀徽J(rèn)為撕掉該人襯衣上的口袋保護(hù)袋,然后用膝蓋折斷他的訂書(shū)機(jī)會(huì)更酷,但這已經(jīng)可以達(dá)到目的。
當(dāng)然,您要?jiǎng)h除的組可能不是 Active Directory 組,而可能是本地組。這會(huì)成為問(wèn)題嗎?不會(huì);實(shí)際上還要簡(jiǎn)單一點(diǎn)兒。只需直接綁定到本地機(jī)上的組帳戶(hù),然后將它刪除:
strComputer = "atl-fs-01"
Set objAdmins = GetObject("WinNT://" & strComputer & "/Administrators")
Set objGroup = GetObject("WinNT://finance")
objAdmins.Remove(objGroup.ADsPath)
順便說(shuō)一句,從一個(gè)組中刪除另一個(gè)組的過(guò)程與從一個(gè)組中刪除用戶(hù)的過(guò)程完全相同:綁定到目標(biāo)組(此例中為本地 Administrators 組),綁定到要?jiǎng)h除的對(duì)象(無(wú)論是組還是用戶(hù),都沒(méi)有關(guān)系),然后調(diào)用 Remove 方法,將要?jiǎng)h除帳戶(hù)的 ADsPath 作為唯一參數(shù)進(jìn)行傳遞。
相關(guān)文章
使用 Iisftp.vbs 設(shè)置Active Directory 用戶(hù)隔離
可使用命令行腳本 iisftp.vbs(存儲(chǔ)在 systemroot\System32 中)查詢(xún)和設(shè)置用戶(hù)的文件傳輸協(xié)議 (FTP) 主目錄的 Active Directory 目錄服務(wù)屬性2014-07-07WINDOWS腳本實(shí)踐:為SAP補(bǔ)丁制作的VBS腳本代碼
WINDOWS腳本實(shí)踐:為SAP補(bǔ)丁制作的VBS腳本代碼...2007-03-03vbs查詢(xún)局域網(wǎng)內(nèi)電腦的軟件和硬件列表清單
這個(gè)是可以幫助大家輕松獲取局域網(wǎng)內(nèi)電腦的相關(guān)軟硬件新的的一個(gè)小工具,希望能幫助到大家,需要的朋友可以參考下2020-12-12