域用戶登陸腳本

域用戶登陸腳本(網絡收集)

如何爲一個域用戶設置登陸腳本?
- BAT可否作爲登陸腳本?
- 在域用戶“屬性”中,應如何指定登陸腳本名?"D:\x.bat"還是"\\srv\x.bat"?還是其它?
- 腳本應該放在何處?
- 還有沒有其它要注意的問題?”

回答:

1、bat可以作爲登陸腳本執行,確切說一切可以在windows平臺執行的東西都可以作爲登陸腳本來用。

2、應該指定以\\server\……這樣格式開頭的路徑。因爲client在登陸的時候執行腳本,其實是從服務器上下載到本地,然後執行。這樣的話,如果指定c:\這樣的路徑,client只會在本地的c盤查找,而不是到server上的路徑去查找。

3、腳本可以放在一切client能夠讀取的位置。通常這個位置處於\\server\netlogon的share下(在服務器上的位置是%systemroot%\sysvol\sysvol\domainname\scripts),但是如果你制訂了策略,那麼腳本默認的存放路徑應該在%systemroot%\sysvol\sysvol\domainname\policies\guid\user(machine)\scripts下,如果你放在別的位置,需要在腳本執行欄的位置輸入絕對路徑,格式同樣需要以\\server\……開頭。

4、其他的問題也很多了,一般來說就是腳本適用於策略的時候,客戶端可能會執行不到。

一般來說可能會有一下的幾個原因:

a、腳本從名稱到內容都儘可能的不要用特殊字符、長文件名(超過8個字符)、空格,比如&等。這樣的腳本在不同的os上可能執行會有問題。

b、腳本存放的位置和路徑,請遵照上面的原則來做。

c、腳本的編寫方面。特別是適用net use 來map一個fileserver上的路徑。有可能在登陸之前,client上已經有網絡盤的映射,如果恰好和你map的盤符一樣,將有可能導致腳本執行失敗,你可以在腳本的最前面加一句net use * /d /y來解決這個問題。

不過這個命令要慎用,在實際生產環境中,如果你的fileserver是非wintel平臺的storage,響應時間較長,那麼可能導致用戶重新登陸時,無法連接fileserver上的sharefolder,可以用一句if exist來判斷網絡盤是否存在。

另外一個方面,如果遠程設備是一些跨平臺的存儲設備,比如一些nas、san等,map到windows平臺的時候可能會提示“網絡路徑無法連接”等問題,可以相互更換map \\server_netbios_name或者map \\server_ipaddress兩種方式來嘗試連接。

如果遇到權限問題,那麼按照共享權限和安全權限衝突時取最小值的原則,一般來講可以將共享權限設置爲full control,然後安全權限做嚴格設定的辦法來解決。

 

d、“配置文件路經”和“登陸腳本路徑”、“主文件夾”

朋友們在初次設置域賬戶腳本的時候,可能對於這三個概念有些模糊,難以區分,這裏說明一下:

①使用組策略,在用戶登錄腳本的的地方編輯一個cmd等,使用諸如net use的方式就可以map一個網絡盤符了。

②“配製文件路徑”是指用戶profile所處的位置,通常在%userprofile%

“登錄腳本路徑”是指用戶登錄到服務器時,執行的腳本所處的位置,通常默認路徑位於

服務器上的netlogon下,如果制定策略中使用腳本,默認的路徑應該在gpo 的guid下的user或者computer下的scripts,如果置於其他位置,需要手動指定完全路徑。

③“主文件夾”是指用戶在fileserver上的個人主目錄,這個概念沒有絕對的位置。需要你手動指定路徑,不過在這裏寫入和在腳本中寫入的不同,在於系統會根據你寫入的路徑,自動創建文件夾,併爲該用戶分配權限,該文件夾的owner屬於該用戶。這裏可以使用%username%的變量,讓系統自行完成。當然在指定了 主目錄後,你仍然可以訪問其他有權限使用的資源。

e、關於策略的執行順序是本機、站點、域、ou、子ou。如果有設置上的重複,按照執行的順序,後面的設置將會覆蓋前面的設置。

如果在ou上設置“block policy inheritance”,那麼上層的策略將不會在這一層獲得執行。

如果在ou上設置“No override”,那麼這一層將不會被後面的策略設置覆蓋,也就是說即使後面有相同的設置,仍然以這一層的設置爲準。

如果在ou上設置“disabled”,那麼這個策略將會被禁止執行。

如果在策略的properties  security上取消了對應的組的read和apply group policy,那麼對應的組將會無法應用到策略。通常默認被應用的組有authenticated user。

如果你取消了該組的兩個權限,然後add其他組,同樣賦予read和apply group policy的話,此策略將只會被該組執行到,這也就是所謂的filter。

如果你的域中有多臺dc,可能需要在dssite.msc中手動同步它們。

你也可以在服務器上使用secedit /refreshpolicy user_policy(machine_policy) /enforce 來強制刷新策略

這樣的辦法同樣適用於client。

f、執行的腳本,可以放在computer configuration和user configuration中執行。

對於user,通常可以放置更改用戶屬性的東西。

對於computer,通常可以放置更改計算機屬性的東西。

這兩個沒有絕對界限,但通常登陸的時候,都屬於domain users成員,這樣如果需要更改註冊表或系統文件之類的,可能會遇到權限問題,那麼我們也可以把這樣的腳本放在computer中,這樣可以在user登陸之前獲得執行。

(這裏順帶說一句:大家很少用到計算機賬戶吧,那麼計算機賬戶的作用在這裏可以得到體現,由於此時還沒有用戶賬戶驗證,計算機賬戶和dc的驗證有一方面來源於本地計算機賬戶和dc之間保持一個密碼同步,以便於在這種特殊的情況下獲得驗證,該密碼默認30天變更一次。

你甚至可以在sharefolder上添加計算機賬戶的權限:)如果由於dns對應或者其他的一些原因,導致這個密碼無法同步,dc將會無法驗證該計算機賬戶,這可能會導致計算機登陸腳本無法執行。在dc的日誌上一般都會給出一個錯誤提示,ComputerNetbiosName$無法存取。解決的辦法,可以通過在客戶端上執行netdom重置該信任關係,這是另話了。)

對於user的設定,只需要登出然後登入即可獲得腳本的應用。

對於computer的設定,則需要重新啓動機器來獲得腳本的執行。

注:從上面的幾點中,大家可以看到計算機在登陸的時候需要通過dns來定位dc,從而定位

定位gpo,sysvol(策略、腳本、管理模板都存放在這裏),dns對於ad的設置是至關重要

的,一般來說可以這樣設置,將客戶端的dns指向dc(如果dc上是雙網卡的話,那麼指向內部

網卡dns),然後在dc上設置轉發,forward到外部(isp)dns。

上面只是就一些常見的問題做簡要介紹,如果遇到更爲複雜的問題,就需要查閱其他資料來解決了。

 

關於大家平時遇到的問題,都整理成faq放在下面

 

FAQ:

 我的配置過程如下:

1、製作腳本文件config.bat並拷貝至域控制器服務器下的sysvol\sysvol\scripts目錄下

   該腳本文件用 net use z: \\linux_file\share 命令

2、配置“配製文件路徑”:路徑指向:\\nwf_sav(域控制服務器名)\netlogon

   配置“登錄腳本路徑”: config.bat

3、在客戶機註銷重新登陸時出現以下窗口:但未能將共享文件夾映射爲Z盤。

  

回答:一般腳本的存放位置有兩種觀點:

1、將登陸腳本放在\\server\netlogon下(在dc上的物理路徑是 %systemroot%\SYSVOL\sysvol\domainname\SCRIPTS ,而不是 sysvol\sysvol\scripts)

在設置賬戶屬性中登陸指令檔的時候,此時是登陸域的時候默認尋找登陸腳本的位置

如果需要修改該腳本,需要手動定位到上面的路徑,

優點是腳本集中放置

2、將登陸腳本放在策略gpo所處的路徑下(在dc上的物理路徑類似於這樣

\\domainname\SysVol\domainname\Policies\{142B4268-9574-471F-9F7F-9AA04836F57F}\User\Scripts\Logon,這裏一長串的數字是gpo的guid,用來唯一的標識這個對象,

可以通過查詢該策略的屬性,來察看該guid)

在設置策略中登入指令檔的時候,此時是登陸域的時候默認尋找登陸腳本的位置

如果需要修改該腳本,可以點擊下方的“顯示檔案”

優點是和策略關聯性強,編輯查找方便

無論用哪種方法,如果腳本放置在默認的查詢路徑,指定登陸檔的時候就不用寫路徑

如果不是,就需要填寫完整路徑,當然這個路徑需要對於client可用,也就是說

不能填寫諸如 c:\winnt\sysvol\sysvol 這樣的路徑,否則client在登陸的時候,只會

在自己的機器上 c:\winnt\sysvol\sysvol 查找腳本,顯然是找不到的,因爲腳本

是下載到本地執行的。

那麼我們先看看腳本是否能夠在client上正確執行,

在client上 winkey+r,然後填入腳本的路徑,比如 \\servername\netlogon\config.bat

執行一下,是否能夠等到正確的結果?

然後察看上面的位置中指定的路徑是否正確

如果是通過策略指定的登陸腳本,我們再用 gpresult /v ,察看一下client是否應用到了

您制定的策略,如果沒有就要考慮使用 dssite.msc 手動同步域中的所有dc,然後

secedit /refreshpolicy user_policy (machine_policy)/enforce 強制刷新策略,

然後client重新登陸或者重新啓動一下(這取決於您制訂的是用戶登陸腳本還是計算機登陸腳本) 

如果還是不行,那麼在早先的那篇文章有提到,

有可能是由於本地已經map 了同樣盤符的盤,導致衝突

有可能是由於map的共享路徑權限設置錯誤,常見的是共享權限的設置問題

有可能是由於map的共享是跨平臺的存儲設備或者格式,它們可能不能在登陸時在系統要求的

時間內響應,這導致系統認爲該資源超時連接,不可用。您可以嘗試更換netbios名稱或者ip

看看是否有所改善。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章