2009年1月31日 星期六

實驗室Server架設(3) 自動新增與用者及更改桌面

我們已經把伺服器的服務都架設完畢
接下來這篇的內容,是一些自動化的工作,包含:
  1. 自動新增使用者
  2. 自動更改桌面到其使用者的共用桌面(在NAS上)

自動新增使用者
傳統的新增方法,是到Active Directory的設定中,按右鍵選新增->使用者

新增完後在使用者上按右鍵,選內容,再做其他設定

這樣每新增一個使用者,管理者就必須設定一次,太麻煩啦!
來寫個batch檔,讓新增使用者+設定只要一個步驟吧!
以下開始batch檔內容:

更多dsadd user選項參考http://technet.microsoft.com/zh-tw/library/cc755811.aspx#BKMK_5

@echo off
echo "Powered by terry0201"
: http://terry0201.blogspot.com/
title MAPL Server使用者新增
:改視窗Title
set user=0
:設定一個變數來存使用者名稱
set /p user=新增使用者名稱:
:出現"新增使用者名稱:"的對話,利用set /p將輸入的使用者名稱存到user變數中
if %user%==0 goto end
:如果沒輸入使用者名稱,就跳到結束區段

dsadd user "cn=%user%, cn=Users, dc=mapl, dc=lab" -disabled no -mustchpwd yes -profile "\\mapl-test\Profiles\%user%" -hmdrv Z: -hmdir \\mapl_nas\MAPL -loscr "FolderRearrange.vbs" -memberof "cn=Domain Admins, cn=users, dc=mapl, dc=lab"
:新增使用者指令 :新增使用者"%user%"在Users的group(-cn),屬於mapl.lab網域(-dc)
:-disable no 帳號可登入 :-mustchpwd yes 因為不預設密碼,所以設定讓使用者第一次登入,需要變更(建立)自己的密碼
:-profile 設定user profile存放的位置
:-hmdrv -hmdir 設定home drive & home dir,讓網路硬碟自動掛載進來(沒確定是否有效)
:-loscr 登入自動執行script的名稱(放在網域控制站\NETLOGON目錄下)
:-memberof 指定該使用者加入之群組,給予應有的權限

echo 新增完成!
pause
exit

:end
echo 未新增,bye bye
:未輸入使用者名稱的結束區段
pause


自動更改桌面Script

上面提到的,登入自動執行script,在每次使用者登入時,都會自動去把NAS作為網路硬碟掛載進來,然後在修改Windows登錄檔,將使用者的桌面指到NAS中對應的資料夾(實驗發現每台電腦修改一次就夠)

這裡因為要修改登錄檔,用VB Script來實做。記得這個script要放在網域控制站的NETLOGON資料夾中,然後在新增使用者時設定logon script

'Powered by terry0201
' http://terry0201.blogspot.com/
'搬移使用者資料夾(桌面等)Script
'請放在 \\網域控制站\netlogon 下

Dim WshShell, Shell, obj
Dim Desktop

Set WshShell=wscript.CreateObject("Wscript.Shell")
Set Shell = WScript.CreateObject ("Shell.Application")
Set obj = WScript.CreateObject("WScript.Shell")

'掛載網路硬碟
'obj.Run "net use Z: /delete"
'obj.Run "net use Z: \\mapl_nas\mapl"

'設定使用者桌面
Desktop = WshShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop")
If str = "Z:\%USERNAME%" Then

else
WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop", "Z:\%USERNAME%", "REG_SZ"
'MsgBox "資料夾設定已更改,請重新登入"
'obj.Run "logoff"
end if

自動化工作就是以上這些。到這裡Server架設,及網域使用者環境都完成,接下來就可以新增電腦跟使用者到這網域中囉!(見下一篇)

實驗室Server架設(2) 對外Window Server 2003設置

之前提到,對外一台Windows Server 2003機器負責網域的服務,包括
  1. 建立mapl.lab的網域
  2. 新增mapl.lab網域的使用者
  3. 外面連線進來遠端或FTP的port Mapping
其實要完成這些,就大約相等於基礎Windows Server 2003網域架設,主要包含以下服務:
  1. AD(Active Directory) -- 提供及管理網域服務
  2. DNS -- 提供網域內各主機的查詢
  3. DHCP -- 區網內IP配置
  4. 防火牆 -- Port Mapping
以下開始設定:
這是2003伺服器管理主頁面,我們只要動上面三項
Active Directory
請參考CSWang's HomepageWindows2003 網域建立 (網站不見了)
重要步驟如下:
網域控制站類型:新網域的網域控制站 -> 建立新的:網域 -> 新網域DNS名稱:mapl.lab(不要用.com之類已定義好的網域) -> 對內網路的DNS指向管理網域的DNS Server(這裡是自己)
開啟AD的管理介面
網域中的電腦、使用者分別可在Computers, Users中檢視管理

設定漫遊使用者設定檔資料夾
在本機新增一個資料夾,並分享
就會在網域控制站中看到此資料夾,新增使用者時就以此資料夾存放設定檔
參考
https://www.microsoft.com.nsatc.net/taiwan/technet/prodtechnol/windows2000serv/howto/userdata.aspx
http://www.pmail.idv.tw/plog/index.php?load=read&id=503

若不設定使用者的設定檔存放位置
則使用者會已本機使用者身份登入
因此每台電腦都有這個使用者各自的設定檔(登入較快?)

DNS
開啟DNS管理介面,設定DNS伺服器要建立正向對應區域輸入網域的名稱我是看書上建議選"允許安全與非安全動態更新","允許安全性動態更新"看起來似乎也行因為不想增加Server 2003的負擔,使用轉寄查詢,網域內Domain Name的查詢當然還是由Server 2003負責。

DHCP
開啟DHCP管理介面設定區網下面電腦的Private IP

NAT及防火牆
開啟"管理VPN伺服器"選擇對外(Public IP)的連線按內容新增"服務與連接埠"設定Port Mapping,這邊的例子是把遠端port 3390導到裡面192.168.0.5的預設遠端port 3389‧之後就可以用對外IP:3390遠端到192.168.0.5這台電腦

如此Windows Server 2003環境設定到此結束,之後就是新增使用者和電腦到網域,以及管理使用者的設定了‧

實驗室Server架設(1) 組織環境

最近和學弟,把實驗室的Server組織重新設計了一次
以下是簡單示意圖: 原本是各台跑實驗用Server(灌Windows Vista 64bit)用獨立Public IP,給每個人遠端進去跑實驗。麻煩的地方就在於,每台都要新增一次自己的帳號,然後跑完實驗後資料數據還要傳到別的地方整理。
改成了新架構後,對外一台Windows Server 2003機器負責網域的服務,包括
  1. 建立mapl.lab的網域
  2. 新增mapl.lab網域的使用者
  3. 外面連線進來遠端或FTP的port Mapping
各台Server都在LAN(區網)下,使用在2003 Server上的網域使用者來登入,如此帳號只需新增一次而在每台都能登入。另外,每個帳號的使用者桌面都會重新導向到NAS的個人資料夾中,利用NAS的大容量及RAID,實驗資料將可以放在同一個兼具安全與容量的地方,供每台跑實驗的Server使用。
最後,為了不讓共用桌面(NAS)的讀寫速度(單顆HDD Read:Write約20:20MB/s, 4顆做RAID5約60:30Mb/s)受網路速度(100Mbps=10MB/s)限制,區網中架設GigaByte(1000Mbps=100MB/s)網路環境。