在win2003域組策略中實現(xiàn)映射網(wǎng)絡(luò)驅(qū)動器
在域組策略中實現(xiàn)映射網(wǎng)絡(luò)驅(qū)動器一、把下面代碼復(fù)制到記事本中,并保存文件名為“l(fā)ogon.vbs”Set WshNetwork = WScript.CreateObject("WScript.Netwo
在域組策略中實現(xiàn)映射網(wǎng)絡(luò)驅(qū)動器
一、把下面代碼復(fù)制到記事本中,并保存文件名為“l(fā)ogon.vbs”
Set WshNetwork = WScript.CreateObject("WScript.Network")
set wshshell=WScript.CreateObject("WScript.shell")
WScript.sleep 3000
WshNetwork.MapNetworkDrive "z:","X.X.X.XXXXX"
二、在AD 用戶和計算機中的域名上右擊,選擇屬性。
三、在彈出的窗口中選擇組策略選項卡——點擊編輯按鈕——在跳出的默認域策略窗口中選擇用戶配置——Windows 設(shè)置——腳本(登陸/注銷)——登陸屬性——點擊顯示文件按鈕,把logon.vbs 復(fù)制到彈出的文件夾中——點擊添加按鈕——點擊瀏覽按鈕把剛才復(fù)制的logon.vbs 腳本文件添加進去——點擊確定按鈕。
添加共享打印機
Set WshNetwork = WScript.CreateObject("WScript.Network")
Wshnetwork.addWindowsPrinterConnection "pc-hp1020"
Wshnetwork.SetDefaultpritner "pc-hp1020"
自動映射網(wǎng)絡(luò)驅(qū)動器:
Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwrok.RemoveNetworkDrive "z"
WshNetwork.MapNetworkDrive "z:","X.X.X.XXXXX"
@echo off
color f2
mode con cols=71 lines=10
echo **********************************************************************
echo ********將添加網(wǎng)絡(luò)驅(qū)動器到本地倒數(shù)第一個可用盤符(一般為
Z :)***********
echo **********************************************************************
echo
@echo off
net use * Servershare P@ssw0rd /user:Domainsharer /PERSISTENT:no
net use x: servernamesharename /y
刪除用:
net use x: /d
,net usr z: 2.168.2.1mcse passwoed /user:username
可以通過下面的方法來實現(xiàn):
1、首先在域中建立一個文件服務(wù)器,然后在該文件服務(wù)器上創(chuàng)建一個共享文件夾,然后為每個域賬號設(shè)置不同的NTFS 權(quán)限和共享權(quán)限,比如賬號A 只有查看的權(quán)限,賬號B 擁有寫的權(quán)限;
2、在客戶端client1上使用域賬號A 登錄,右鍵點擊我的電腦,選擇映射網(wǎng)絡(luò)驅(qū)動器,指定驅(qū)動器的名稱,然后點擊瀏覽,查找文件服務(wù)器和共享文件夾,請選中登錄時重新連接。
3、點擊完成。
4、在客戶端client2上使用域賬號B 登錄,按照上述的方法建立到文件夾服務(wù)器的共享文件夾的映射驅(qū)動器;
5、這樣就可以實現(xiàn)賬號A 和賬號B 登錄后就可以看到網(wǎng)絡(luò)驅(qū)動器,并且擁有不同的權(quán)限。
如何為一個域用戶設(shè)置登陸腳本?
- BAT可否作為登陸腳本?
- 在域用戶“屬性”中,應(yīng)如何指定登陸腳本名?"D:x.bat"還是"srvx.bat"?還是其它?
- 腳本應(yīng)該放在何處?
1、bat 可以作為登陸腳本執(zhí)行,確切說一切可以在windows 平臺執(zhí)行的東西都可以作為登陸腳本來用。
2、應(yīng)該指定以server……這樣格式開頭的路徑。因為client 在登陸的時候執(zhí)行腳本,其實是從服務(wù)器上下載到本地,然后執(zhí)行。這樣的話,如果指定c:這樣的路徑,client 只會在本地的c 盤查找,而不是到server 上的路徑去查找。
3、腳本可以放在一切client 能夠讀取的位置。通常這個位置處于servernetlogon的share 下(在服務(wù)器上的位置
是systemrootsysvolsysvoldomainnamescripts),但是如果你制訂了策略,那么腳本默認的存放路徑應(yīng)該
在systemrootsysvolsysvoldomainnamepoliciesguiduser(machine)scripts 下,如果你放在別的位置,需要在腳本執(zhí)行欄的位置輸入絕對路徑,格式同樣需要以server……開頭。
4、其他的問題也很多了,一般來說就是腳本適用于策略的時候,客戶端可能會執(zhí)行不到。
一般來說可能會有一下的幾個原因:
a 、腳本從名稱到內(nèi)容都盡可能的不要用特殊字符、長文件名(超過8個字符)、空格,比如&等。這樣的腳本在不同的os 上可能執(zhí)行會有問題。
b 、腳本存放的位置和路徑,請遵照上面的原則來做。
c 、腳本的編寫方面。特別是適用net use 來map 一個fileserver 上的路徑。有可能在登陸之前,client 上已經(jīng)有網(wǎng)絡(luò)盤的映射,如果恰好和你map 的盤符一樣,將有可能導(dǎo)致腳本執(zhí)行失敗,你可以在腳本的最前面加一句net use * /d /y來解
,決這個問題。
不過這個命令要慎用,在實際生產(chǎn)環(huán)境中,如果你的fileserver 是非wintel 平臺的storage ,響應(yīng)時間較長,那么可能導(dǎo)致用戶重新登陸時,無法連接fileserver 上的sharefolder ,可以用一句if exist來判斷網(wǎng)絡(luò)盤是否存在。
另外一個方面,如果遠程設(shè)備是一些跨平臺的存儲設(shè)備,比如一些nas 、san 等,map 到windows 平臺的時候可能會提示“網(wǎng)絡(luò)路徑無法連接”等問題,可以相互更換map server_netbios_name或者map server_ipaddress兩種方式來嘗試連接。
如果遇到權(quán)限問題,那么按照共享權(quán)限和安全權(quán)限沖突時取最小值的原則,一般來講可以將共享權(quán)限設(shè)置為full control,然后安全權(quán)限做嚴格設(shè)定的辦法來解決。
d 、關(guān)于策略的執(zhí)行順序是本機、站點、域、ou 、子ou 。如果有設(shè)置上的重復(fù),按照執(zhí)行的順序,后面的設(shè)置將會覆蓋前面的設(shè)置。
如果在ou 上設(shè)置“block policy inheritance”,那么上層的策略將不會在這一層獲得執(zhí)行。
如果在ou 上設(shè)置“No override”,那么這一層將不會被后面的策略設(shè)置覆蓋,也就是說即使后面有相同的設(shè)置,仍然以這一層的設(shè)置為準。
如果在ou 上設(shè)置“disabled”,那么這個策略將會被禁止執(zhí)行。
如果在策略的properties security上取消了對應(yīng)的組的read 和apply group policy ,那么對應(yīng)的組將會無法應(yīng)用到策略。通常默認被應(yīng)用的組有
authenticated user。
如果你取消了該組的兩個權(quán)限,然后add 其他組,同樣賦予read 和apply group policy 的話,此策略將只會被該組執(zhí)行到,這也就是所謂的filter 。
如果你的域中有多臺dc ,可能需要在dssite.msc 中手動同步它們。
你也可以在服務(wù)器上使用secedit /refreshpolicy user_policy(machine_policy) /enforce 來強制刷新策略
這樣的辦法同樣適用于client 。
e 、執(zhí)行的腳本,可以放在computer configuration和user configuration中執(zhí)行。 對于user ,通??梢苑胖酶挠脩魧傩缘臇|西。
對于computer ,通??梢苑胖酶挠嬎銠C屬性的東西。
這兩個沒有絕對界限,但通常登陸的時候,都屬于domain users成員,這樣如果需要更改注冊表或系統(tǒng)文件之類的,可能會遇到權(quán)限問題,那么我們也可以把這樣的腳本放在computer 中,這樣可以在user 登陸之前獲得執(zhí)行。
(這里順帶說一句:大家很少用到計算機賬戶吧,那么計算機賬戶的作用在這里可以得到體現(xiàn),由于此時還沒有用戶賬戶驗證,計算機賬戶和dc 的驗證有一方面來源于本地計算機賬戶和dc 之間保持一個密碼同步,以便于在這種特殊的情況下獲得驗證,該密碼默認30天變更一次。
你甚至可以在sharefolder 上添加計算機賬戶的權(quán)限:)如果由于dns 對應(yīng)或者其他的一些原因,導(dǎo)致這個密碼無法同步,dc 將會無法驗證該計算機賬戶,這可能會導(dǎo)致計算機登陸腳本無法執(zhí)行。在dc 的日志上一般都會給出一個錯誤提示,ComputerNetbiosName$無法存取。解決的辦法,可以通過在客戶端上執(zhí)行
,netdom 重置該信任關(guān)系,這是另話了。)
對于user 的設(shè)定,只需要登出然后登入即可獲得腳本的應(yīng)用。
對于computer 的設(shè)定,則需要重新啟動機器來獲得腳本的執(zhí)行。
d 、“配置文件路經(jīng)”和“登陸腳本路徑”、“主文件夾”
朋友們在初次設(shè)置域賬戶腳本的時候,可能對于這三個概念有些模糊,難以區(qū)分,這里說明一下:
①使用組策略,在用戶登錄腳本的的地方編輯一個cmd 等,使用諸如net use的方式就可以map 一個網(wǎng)絡(luò)盤符了。
②“配置文件路徑”是指用戶profile 所處的位置,通常在userprofile
“登錄腳本路徑”是指用戶登錄到服務(wù)器時,執(zhí)行的腳本所處的位置,通常默認路徑位于服務(wù)器上的netlogon 下,如果制定策略中使用腳本,默認的路徑應(yīng)該在gpo 的guid 下的user 或者computer 下的scripts ,如果置于其他位置,需要手動指定完全路徑。
③“主文件夾”是指用戶在fileserver 上的個人主目錄,這個概念沒有絕對的位置。需要你手動指定路徑,不過在這里寫入和在腳本中寫入的不同,在于系統(tǒng)會根據(jù)你寫入的路徑,自動創(chuàng)建文件夾,并為該用戶分配權(quán)限,該文件夾的owner 屬于該用戶。這里可以使用username的變量,讓系統(tǒng)自行完成。當然在指定了主目錄后,你仍然可以訪問其他有權(quán)限使用的資源。
e 、關(guān)于策略的執(zhí)行順序是本機、站點、域、ou 、子ou 。如果有設(shè)置上的重復(fù),按照執(zhí)行的順序,后面的設(shè)置將會覆蓋前面的設(shè)置。
如果在ou 上設(shè)置“block policy inheritance”,那么上層的策略將不會在這一層獲得執(zhí)行。
如果在ou 上設(shè)置“No override”,那么這一層將不會被后面的策略設(shè)置覆蓋,也就是說即使后面有相同的設(shè)置,仍然以這一層的設(shè)置為準。
如果在ou 上設(shè)置“disabled”,那么這個策略將會被禁止執(zhí)行。
如果在策略的properties security上取消了對應(yīng)的組的read 和apply group policy ,那么對應(yīng)的組將會無法應(yīng)用到策略。通常默認被應(yīng)用的組有
authenticated user。
如果你取消了該組的兩個權(quán)限,然后add 其他組,同樣賦予read 和apply group policy 的話,此策略將只會被該組執(zhí)行到,這也就是所謂的filter 。
如果你的域中有多臺dc ,可能需要在dssite.msc 中手動同步它們。
你也可以在服務(wù)器上使用secedit /refreshpolicy user_policy(machine_policy) /enforce 來強制刷新策略
這樣的辦法同樣適用于client 。
f 、執(zhí)行的腳本,可以放在computer configuration和user configuration中執(zhí)行。 對于user ,通常可以放置更改用戶屬性的東西。
對于computer ,通??梢苑胖酶挠嬎銠C屬性的東西。
這兩個沒有絕對界限,但通常登陸的時候,都屬于domain users成員,這樣如
,果需要更改注冊表或系統(tǒng)文件之類的,可能會遇到權(quán)限問題,那么我們也可以把這樣的腳本放在computer 中,這樣可以在user 登陸之前獲得執(zhí)行。
計算機賬戶:大家很少用到計算機賬戶吧,那么計算機賬戶的作用在這里可以得到體現(xiàn),由于此時還沒有用戶賬戶驗證,計算機賬戶和dc 的驗證有一方面來源于本地計算機賬戶和dc 之間保持一個密碼同步,以便于在這種特殊的情況下獲得驗證,該密碼默認30天變更一次。你甚至可以在sharefolder 上添加計算機賬戶的權(quán)限。
如果由于dns 對應(yīng)或者其他的一些原因,導(dǎo)致這個密碼無法同步,dc 將會無法驗證該計算機賬戶,這可能會導(dǎo)致計算機登陸腳本無法執(zhí)行。在dc 的日志上一般都會給出一個錯誤提示,ComputerNetbiosName$無法存取。解決的辦法,可以通過在客戶端上執(zhí)行netdom 重置該信任關(guān)系,這是另話了。
對于user 的設(shè)定,只需要登出然后登入即可獲得腳本的應(yīng)用。
對于computer 的設(shè)定,則需要重新啟動機器來獲得腳本的執(zhí)行。
注:從上面的幾點中,大家可以看到計算機在登陸的時候需要通過dns 來定位dc ,從而定位定位gpo ,sysvol (策略、腳本、管理模板都存放在這里),dns 對于ad 的設(shè)置是至關(guān)重要的,一般來說可以這樣設(shè)置,將客戶端的dns 指向dc (如果dc 上是雙網(wǎng)卡的話,那么指向內(nèi)部網(wǎng)卡dns ),然后在dc 上設(shè)置轉(zhuǎn)發(fā),forward 到外部(isp )dns 。
FAQ :
配置過程如下:
1、制作腳本文件config.bat 并拷貝至域控制器服務(wù)器下的sysvolsysvolscripts 目錄下
該腳本文件用 net use z: linux_fileshare 命令
2、配置“配制文件路徑”:路徑指向: wf_sav(域控制服務(wù)器名) etlogon 配置“登錄腳本路徑”: config.bat
3、在客戶機注銷重新登陸時出現(xiàn)以下窗口:但未能將共享文件夾映射為Z 盤。 回答:一般腳本的存放位置有兩種觀點:
1、將登陸腳本放在server etlogon下(在dc 上的物理路徑
是 systemrootSYSVOLsysvoldomainnameSCRIPTS ,而不是 sysvolsysvolscripts )
在設(shè)置賬戶屬性中登陸指令檔的時候,此時是登陸域的時候默認尋找登陸腳本的位置。如果需要修改該腳本,需要手動定位到上面的路徑,優(yōu)點是腳本集中放置
2、將登陸腳本放在策略gpo 所處的路徑下(在dc 上的物理路徑類似于這樣 domainnameSysVoldomainnamePolicies{142B4268-9574-471F-9F7F-9AA04836F57F}UserScriptsLogon,這里一長串的數(shù)字是gpo 的guid ,用來唯一的標識這個對象,可以通過查詢該策略的屬性,來察看該guid )
,在設(shè)置策略中登入指令檔的時候,此時是登陸域的時候默認尋找登陸腳本的位置 如果需要修改該腳本,可以點擊下方的“顯示檔案”
優(yōu)點是和策略關(guān)聯(lián)性強,編輯查找方便
無論用哪種方法,如果腳本放置在默認的查詢路徑,指定登陸檔的時候就不用寫路徑。
如果不是,就需要填寫完整路徑,當然這個路徑需要對于client 可用,也就是說不能填寫諸如 c:winntsysvolsysvol 這樣的路徑,否則client 在登陸的時候,只會在自己的機器上 c:winntsysvolsysvol 查找腳本,顯然是找不到的,因為腳本是下載到本地執(zhí)行的。
那么我們先看看腳本是否能夠在client 上正確執(zhí)行,在client 上 winkey r,然后填入腳本的路徑,比如 servername etlogonconfig.bat
執(zhí)行一下,是否能夠等到正確的結(jié)果?
然后察看上面的位置中指定的路徑是否正確
如果是通過策略指定的登陸腳本,我們再用 gpresult /v ,察看一下client 是否應(yīng)用到了您制定的策略,如果沒有就要考慮使用 dssite.msc 手動同步域中的所有dc ,然后secedit /refreshpolicy user_policy (machine_policy)/enforce 強制刷新策略,然后client 重新登陸或者重新啟動一下(這取決于您制訂的是用戶登陸腳本還是計算機登陸腳本)
如果還是不行,有可能是由于本地已經(jīng)map 了同樣盤符的盤,導(dǎo)致沖突 有可能是由于map 的共享路徑權(quán)限設(shè)置錯誤,常見的是共享權(quán)限的設(shè)置問題 有可能是由于map 的共享是跨平臺的存儲設(shè)備或者格式,它們可能不能在登陸時在系統(tǒng)要求的時間內(nèi)響應(yīng),這導(dǎo)致系統(tǒng)認為該資源超時連接,不可用。您可以嘗試更換netbios 名稱或者ip 看看是否有所改善。
將用戶添加到組的腳本:
引用:
dim MyUserContainer as IADsContainer
dim MyUser as IADsUser
dim MyGroup as IADsGroup
dim Filter as Variant
Filter = Array( user );
set MyUserContainer = GetOBject( WinNT://ABX )
MyContainer.Filter = Filter filter out all objects except users
set MyGroup = GetObject( WinNT://ABX/Manufacturing_Users )
for each MyUser in MyUserContainer
if not MyGroup.IsMember(MyUser) then
,MyGroup.Add(MyUser) end if