2013年1月5日 星期六

My Youtube Video


It is so sad to remove original sound of involving copyright issues.


2012年12月29日 星期六

DFS 命名空間設定清除及移除

容錯 DFS 根目錄

藉由將net stop dfs在命令提示字元下停止 DFS 服務。
啟動 [登錄編輯程式,並刪除下列登錄機碼:
刪除磁碟區] 資料夾,並在 [HKLM\SOFTWARE\Microsoft\DfsHost] 下的任何子資料夾。
刪除所有的子資料夾下 HKLM\SYSTEM\CurrentControlSet\Services\DfsDriver\LocalVolumes,保留不變的 LocalVolumes。
從 Active Directory 使用者和電腦] 嵌入式管理單元 」,按一下 [檢視] 功能表上的 [進階功能]。開啟 [系統] 資料夾下的 DFS 設定容器。刪除在右邊窗格中的 DFS 根目錄。

請注意也可以從 Active Directory 使用 LDAP 或 Adsiedit.msc 移除 DFS 組態資料。對於網域中的電腦 A.COM 具有名為 DFSFT 的容錯 DFS 根目錄,LDAP 路徑是 CN = DFS 設定,CN = 系統 (哥倫比亞特區) = A (哥倫比亞特區) = COM。
在步驟 1 中,重新啟動您先前停止 DFS 服務。

獨立的 DFS 根目錄和 Windows 2000 叢集伺服器

藉由將net stop dfs在命令提示字元下停止 DFS 服務。
啟動 [登錄編輯程式,並刪除下列登錄機碼:
刪除磁碟區] 資料夾,並在 [HKLM\SOFTWARE\Microsoft\DfsHost] 下的任何子資料夾。
刪除所有的子資料夾下 HKLM\SYSTEM\CurrentControlSet\Services\DfsDriver\LocalVolumes,保留不變的 LocalVolumes。
在步驟 1 中,重新啟動您先前停止 DFS 服務。

DFS 命名空間的組態儲存位置

下列位置儲存不同的組態資料,分散式檔案系統 (DFS) 命名空間:

Active Directory 網域服務 (AD DS) 會將網域型命名空間的組態資料儲存在包含命名空間伺服器名稱、 資料夾目標,以及其他各種的組態資料的一或多個物件。
命名空間伺服器維護共用的裝載每個命名空間。
登錄機碼,在網域型命名空間伺服器上的儲存的命名空間的成員資格。

附註在獨立命名空間伺服器上,登錄機碼會儲存所有命名空間組態資料。

如果遺失或不正確,請設定資料的任何子網路,您可能無法管理的命名空間。此外,您可能會收到許多不同的錯誤訊息,當您在使用 [DFS 命名空間 Microsoft 管理主控台 (MMC) 嵌入式管理單元 」、 「 Dfsutil.exe 」 工具或 [Dfscmd.exe] 工具,或用戶端存取命名空間管理 DFS 命名空間中。請參閱""部分可能的錯誤訊息清單。

如何 DFS 命名空間的組態資料可能會變成不一致的範例

dfsutil/清除] 命令會在網域為基礎的命名空間伺服器上執行。這個命令會移除命名空間的登錄資料。組態資料是儲存在 AD DS 中會保留,而且列舉的 DFS 命名空間 MMC 嵌入式管理單元。
AD DS 的系統授權還原作業執行復原已刪除使用 DFS 管理工具,例如 [DFS 命名空間 MMC 嵌入式管理單元或 Dfsutil.exe 工具的 DFS 命名空間。雖然 AD DS 還原可能成功,命名空間才會運作也還原或復原其他 DFS 命名空間的組態資料。
執行 AD ds 進行系統授權還原的目的是為了要修復 DFS 命名空間中,使用 [DFS 管理] 工具,例如 [DFS 命名空間的 MMC 嵌入式管理單元 」 或 「 Dfsutil.exe 」 工具已被刪除。雖然 AD ds 還原可能會成功,則名稱區目前無法操作除非也還原或復原其他 DFS 命名空間的組態資料。
使用伺服器之前所建立的備份來命名空間伺服器的系統狀態的還原作業成為命名空間伺服器。
作用中的目錄複寫失敗會使命名空間伺服器無法尋找 DFS 命名空間的組態資料。
不正確的修改不正確的或移除命名空間的命名空間伺服器上的共用。
DFS 命名空間設定清除及移除

DFS 命名空間的組態資料是由管理和維護使用 DFS 的 Api 的管理工具。DFS Api 會通知 Active Directory 網域控制站與 DFS 命名空間伺服器的相關設定的變更。這種行為防止變得失去關聯的組態資料,並保證組態資料的一致性。如果禁止通知程序,或是其他一切資料都刪除牌或輸牌,請遵循此處所列移除組態資料的清除步驟。這些變更不是可復原的除非您的系統狀態備份網域控制站或命名空間伺服器。

如需有關如何備份系統狀態的伺服器已經執行 Windows Server 2003 的詳細資訊,請造訪下列 Microsoft 網站:
http://technet.microsoft.com/en-us/library/cc759141.aspx

如需有關如何執行 Windows Server 2008 伺服器系統狀態備份的詳細資訊,請造訪下列 Microsoft 網站:
http://technet.microsoft.com/en-us/library/cc770266.aspx 


附註只有當恢復損毀的組態資料是不可能或不希望能使用下列步驟。

如需有關修復程序,DFS 命名空間的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
969382在 Windows 2003] 及 [2008年伺服器的 DFS Namespace 修復處理程序

網域型 DFS 命名空間,請移除 AD DS 的命名空間的組態資料。移除程序之前, 您必須準確地識別故障或不一致的命名空間相關聯的物件。若要移除 AD DS 的命名空間的組態資料,請依照下列步驟執行:
開啟 [Adsiedit.msc] 工具。這項工具會被包含在 Windows Server 2008,且需要安裝 AD DS 角色或工具。這個工具適用於 Windows Server 2003 支援工具。

如需有關 「 Adsiedit.msc 」 工具的詳細資訊,請造訪下列 Microsoft 網站:
http://technet.microsoft.com/en-us/library/cc773354 (WS.10).aspx
找出裝載網域型命名空間之網域的網域磁碟分割。移至下列位置:
CN = Dfs 設定,CN = 系統 (哥倫比亞特區):<domain DN>
附註<domain DN>版面配置區是網域的辨別的名稱。

如需有關 Windows 2000 Server 登錄儲存位置的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
選取適當的物件,例如"fTDfs"或"msDFS-NamespaceAnchor"的物件,然後再刪除它與任何子物件。

附註使用中的目錄複寫延遲可能會延遲這項變更作業傳送出去的遠端網域控制站。
在任何命名空間伺服器上裝載命名空間,請確認移除的 DFS 命名空間登錄組態資料。如果其他正常運作的命名空間裝載在伺服器上,請確定只有不一致的命名空間的登錄機碼會移除。若要移除 DFS 命名空間的登錄設定資料,請依照下列步驟執行:
在 「 登錄編輯程式中,在適當的路徑找出組態登錄機碼的命名空間,使用其中一個下列路徑:

以網域為基礎的 DFSN,「 Windows Server 2008 模式"
HKEY_LOCAL_MACHINE \Software\Microsoft\Dfs\Roots\domainV2
獨立的 DFSN
HKEY_LOCAL_MACHINE \Software\Microsoft\Dfs\Roots\Standalone
以網域為基礎的 DFSN,在 「 Windows 2000 伺服器模式 」
HKEY_LOCAL_MACHINE\Software\Microsoft\Dfs\Roots\Domain
如更多有關 Windows 2000 Server 登錄儲存位置,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
224384HOW TO: 強制刪除 DFS 設定資訊
如果找不到名為具有相同的不一致的命名空間的登錄機碼,使用 Dfsutil.exe 工具來移除登錄機碼。比方說,執行下列命令:
dfsutil / 清除 /server:servername/share:sharename/verbose

附註servername的預留位置裝載命名空間的伺服器名稱現況的sharename版面配置區的根目錄共用名稱。
或者,您也可以手動刪除機碼。
在命名空間伺服器上,您可以在 Windows Server 2003 或 Windows Server 2008 中的 DFS 命名空間服務登錄在服務上的變更重新啟動 DFS 服務。
移除已從命名空間伺服器的命名空間相關聯的檔案共用。這個步驟的程序,可能導致索引 ddl 的失敗,因為 DFS 命名空間可能會封鎖命名空間建立命名空間。

Windows 2003 Server
開啟 [電腦管理] MMC 嵌入式管理單元。若要這樣做,請執行 Compmgmt.msc 工具。
展開 [系統工具],展開 [共用資料夾],然後按一下共用
DFS 命名空間共用中,以滑鼠右鍵按一下,然後按一下 [停止共用。如果您收到下列錯誤訊息時,您必須重新啟動伺服器,並再試一次使用電腦管理] MMC 嵌入式管理單元移除共用:
「 系統無法停止共用<\\server\share> ,因為共用的資料夾設為分散式檔案系統 (DFS) 命名空間根目錄 」
Windows 2008 Server
開啟"共用與存放管理 」 MMC 嵌入式管理單元。若要這樣做,請執行 StorageMgmt.msc 工具。
這個命名空間中,共用上按一下滑鼠右鍵,然後按一下 [停止共用。如果您收到下列錯誤訊息時,您就必須重新啟動伺服器,並使用電腦管理] MMC 嵌入式管理單元移除共用:
系統無法停止共用<\\server\share> ,因為共用的資料夾設為分散式檔案系統 (DFS) 命名空間根目錄

變更 DFS 命名空間設定資料應該只考慮之後評估所有其他還原選項。我們建議您定期取得的 DFS 命名空間伺服器和網域型 DFS 命名空間的網域控制站的系統狀態備份。這些備份可以用於還原完整的作業,而不必擔心有不一致的 DFS 命名空間的組態資料的命名空間的設定。回此頁最上方 | 提供意見
徵兆及錯誤訊息
DFS 管理 MMC (Dfsmgmt.msc)

在 [Dfsmgmt.msc] 工具中,您可能會收到下列錯誤訊息:

\\domain.com\namespace: 無法查詢的 Namespace。找不到項目。
您已經指定的伺服器裝載具有此名稱的命名空間。請選擇另一個命名空間的名稱或另一部伺服器主控命名空間。
伺服器<servername>上已有的共用的資料夾名稱"命名空間 」。如果使用現有的共用的資料夾時,將不會套用在 [編輯設定] 對話方塊中指定的安全性設定。若要讓使用這些設定所建立的共用的資料夾,您必須先移除現有的共用的資料夾。
建立命名空間伺服器所在網域中,不具唯一性的命名空間。您必須回到選擇新的命名空間名稱,或將命名空間類型變更為獨立。
\ \ domain.com\namespace1: 命名空間伺服器 \\servername\namespace1無法加入。無法建立檔案,該檔案已存在。
\\domain.com\namespace: 無法查詢命名空間。系統找不到指定的檔案。
\\domain.com\namespace: 無法查詢命名空間。裝置尚未備妥使用。
嘗試刪除共用<namespacefolder>時發生錯誤。共用必須從 [分散式檔案系統中移除,才能刪除。
分散式的檔案系統 MMC (Dfsgui.msc)

在 [Dfsgui.msc] 工具中,您可能會收到下列錯誤訊息:

指定的 DFS 根目錄不存在。
DFS 根目錄"namespace1"已經存在。請指定新的 DFS 根目錄的另一個名稱。
在伺服器的伺服器名稱上建立 DFS 根目錄時,發生以下錯誤: 無法建立檔案,該檔案已存在。
指定的 DFS 根目錄不存在。
系統找不到指定的檔案。
Dfsutil.exe

在 [Dfsutil.exe] 工具中,您可能會收到下列錯誤訊息:

發生系統錯誤 1168年。找不到項目。
Dfscmd.exe

在 [Dfscmd.exe] 工具中,您可能會收到下列錯誤訊息:

發生系統錯誤 1168年。找不到項目。
發生系統錯誤 80。檔案已存在。
發生系統錯誤 2。系統找不到指定的檔案。 


DFS 用戶端

在電腦上正在執行 DFS 用戶端,您可能會收到下列錯誤訊息:

Windows 找不到 '\\domain.com\namespace\folder'。請確定您輸入的名稱正確,並再試一次。
找不到的檔案。
Windows 無法存取 '\\domain.com\namespace\folder'。請檢查名稱正確。否則,可能會與您的網路有問題。
其他詳細資料:
錯誤碼: 0x80070002 系統找不到指定的檔案。
Windows 無法存取 \\domain.com\namespace1。錯誤碼 0x80070035 找不到網路路徑。
\\domain.com\namespace\folder,所以無法存取。您可能沒有使用此網路資源的權限。.找不到網路路徑。
無法讀取組態資訊,從網域控制站,可能是機器無法使用,或存取被拒。
Windows 無法存取 \\domain.com\namespace。請檢查名稱正確。否則,可能會與您的網路有問題。
其他詳細資料:
錯誤碼: 找不到網路路徑的 0x80070035。
系統找不到指定的路徑。

2012年12月26日 星期三

Disaster Recovery with Dell EqualLogic and VMware SRM 5


Windows 如何恢復SID方法


Widnows中創建使用者或電腦、群組時都會生成SID號,那麼如果用戶把自己的登錄帳戶刪除,那些EFS加密檔已經無法使用,但是只要滿足以下條件的話,還是有一線生機:


EFS加密原理
EFS加密實際上綜合了對稱加密和不對稱加密:

  • 隨機生成一個檔加密金鑰(叫做FEK),用來加密和解密檔。
  • 這個FEK會被當前帳戶的公開金鑰進行加密,加密後的FEK副本保存在檔$EFS屬性的DDF欄位裡。
(1) 必須知道該被刪帳戶的密碼。
(2) 該被刪帳戶的設定檔必須存在。
(3) 要想解密檔,首先必須用當前用戶的私密金鑰去解密FEK,然後用FEK去解密文件。

這樣還不足於確保EFS的安全性。系統還會對EFS添加兩層保護措施:

(1) Windows會用64位元組的主金鑰(Master Key)對私密金鑰進行加密,加密後的私密金鑰保存在以下資料夾:%UserProfile%\Application Data\Microsoft\Crypto\RSA\SID
提示 Windows系統裡的各種私有金鑰,都用相應的主金鑰進行加密。Windows Vista的BitLocker加密,也用其主金鑰對FVEK(全卷加密金鑰)進行加密。
(2) 為了保護主金鑰,系統會對主金鑰本身進行加密(使用的金鑰由帳戶密碼派生而來),加密後的主金鑰保存在以下資料夾:%UserProfile%\Application Data\Microsoft\Protect\SID

提示 EFS金鑰的結構部分,參考自《Windows Internals 4th》的第12章。
回到“任務描述”部分所述的兩個條件,現在我們應該明白原因了:
(1) 必須知道該被刪帳戶的密碼:沒有帳戶密碼,就無法解密主金鑰。因為其加密金鑰是由帳戶密碼派生而來的。
(2) 該被刪帳戶的設定檔必須存在:加密後的私密金鑰和主金鑰(還包括證書和公開金鑰),都保存在設定檔裡,所以設定檔萬萬不可丟失。

原來的使用者帳戶已經被刪除,怎麼辦?方法是讓系統再造一個完全一樣的SID新建一個用戶將SID改變與舊帳戶一樣即可
恢復步驟
為了方便描述,這裡假設被刪帳戶的用戶名為Admin,Windows安裝在C盤。

1.再造SID
首先確認被刪帳戶的SID,這裡可以進入以下資料夾:
C:\Documents and Settings\Admin\Application Data\Microsoft\Crypto\RSA
在其下應該有一個以該被刪帳戶的SID為名的資料夾,例如是S-1-5-21-4662660629-873921405-788003330-1004(RID為1004)
在Windows中,下一個新建帳戶所分配的RID是由HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account註冊表項的F鍵值所確定的。F鍵值是二進位類型的資料,在偏移量0048處的四個位元組,定義下一個帳戶的RID。那麼也就是說,只需要修改0048處的四個位元組,就能達到目的(讓新建帳戶獲得1004的RID)
確認好以後,別忘記把Admin帳戶的設定檔轉移到別的地方!

(1) 預設情況下,只有system帳戶才有許可權訪問HKEY_LOCAL_MACHINE\SAM,這裡在CMD命令提示視窗,運行以下命令,以system帳戶身份打開登錄編輯程式:
pexec -i -d -s %windir%\regedit.exe
提示 可以在以下網站下載psexec:
http://www.sysinternals.com/Utilities/PsExec.html

(2) 定位到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account註冊表項,按兩下打開右側的F鍵值。


(3) 這裡要說明一下,Windows是以十六進位、而且以反轉形式保存下一個帳戶的RID。什麼意思呢?也就是說,如果是1004的RID,對應十六進位就是03EC,但是我們必須把它反轉過來變成EC03,再擴展為4個位元組,就是EC 03 00 00。
所以,我們應該把F鍵值的0048偏移量處,把其中四個位元組改為“EC 03 00 00”。

(4) 重啟以後,新建一個同名帳戶Admin,它的SID應該和以前是完全一樣。如果不相信的話,可以借助GetSID或者PsGetSID等工具測試一下。

2.“破解”EFS
接下來的方法就非常簡單了,用新建的Admin帳戶身份登錄系統,隨便加密一個檔,然後註銷,用管理員帳戶登錄系統,把原來保留的設定檔複製到C:\Documents and Settings\Admin資料夾下。
再用Admin帳戶登錄系統,現在可以解密原來的EFS檔了。

疑難排解
1.如果已經重裝系統,那怎麼辦?
“聲明”部分提到的那篇文章裡提到,如果還記得原來帳戶的密碼,並且設定檔沒有被刪除的話,還有希望。這時候可以借助sysinternals的NEWSID工具把系統的電腦SID重設為原來的值,再用前面描述的方法構造所需的RID,這樣就可以獲得所需的帳戶SID。剩餘步驟完全一樣。
http://www.sysinternals.com/Utilities/NewSid.html

2.有用戶曾經遇到這樣的問題:登錄系統時收到提示說密碼過期,需要重設,重設密碼登錄後發現打開EFS文件。

KB890951提到這個問題。其解釋是因為在修改密碼時,系統還沒有載入設定檔(有點語焉不詳),原文如下:
This problem occurs because the user profile for the current user is not loaded correctly after you change the password.
設定檔和EFS有何相干?看完本文,大家應該知道,EFS的私密金鑰和主金鑰都是保存在設定檔裡的。由於設定檔沒有載入,所以主金鑰的加密版本沒有得到更新(沒有跟上帳戶密碼的變化),導致主金鑰無法正確解密,從而無法解密私密金鑰和FEK。這就是問題的真正原因。
該KB提供了一個內部補丁,可以解決這個問題。KB890951的連結如下:
http://support.microsoft.com/kb/890951

3.有關公開金鑰的問題

為了容易理解,筆者故意忽略了公開金鑰。公開金鑰保存也保存在帳戶的設定檔裡:
%UserProfile%\Application Data\Microsoft\SystemCertificates\My\Certificates
在EFS恢復的操作中,必須確保公開金鑰也要複製到新帳戶的設定檔裡。儘管看起來公開金鑰與EFS解密無關(它負責加密)。
原來,加密檔$EFS屬性的DDF欄位裡除了有帳戶SID和加密的FEK副本外,還有公開金鑰的指紋資訊(Public Key Thumbprint)和私密金鑰GUID信息(私密金鑰的某種散列值)。
系統在掃描加密檔$EFS屬性中的DDF欄位時,根據使用者設定檔裡的公開金鑰中所包含的公開金鑰指紋和私密金鑰GUID資訊,當然還有帳戶的SID,來判斷該帳戶是否具有對應的DDF欄位,從而判斷該用戶是否屬於合法的EFS檔擁有者。
所以公開金鑰也很重要。
當然公開金鑰是可以“偽造”的(可以偽造出所需的公開金鑰指紋和私密金鑰GUID),以欺騙EFS系統,具體方法可以參考國外的那篇原稿,此處不再贅述。
加強EFS的安全
由於EFS把所有的相關金鑰都保存在Windows分區,所以這可能給EFS帶來一定的安全隱患。目前有一些協力廠商工具號稱可以破解EFS,這些工具首先攻擊SAM配置單中繼檔,嘗試破解帳戶密碼,從而破解帳戶密碼→主金鑰的加密金鑰→主金鑰→EFS私密金鑰→FEK的“金鑰鏈”。

VMware View 憑證申請與管理

申請證書步驟: 
一、建立 keystore,產生憑證請求 Keytool 指令存在於目錄 C:\Program Files\VMware\VMware View\Server\jre\bin中。
建立 keystore: keystore是儲存金鑰和憑證的資料庫,憑證的要求以及頒發的憑證都保存其中。具體的執行命令為: keytool -genkey -keyalg "RSA" -keystore <keys.p12> -storetype pkcs12 -validity <validity time> keys.p12是 keystore的名字,validity time是證書的有效時間,單位是天。指令執行時系統會詢問相關的憑證問題,需要注意的是在輸入名字時,一定要輸入使用者端連接伺服器用的 FQDN名稱,如下圖,完成後會產生一個 .p12的檔案,這就是 keystore。



在 keystore中產生憑證要求:指令 keytool -certreq -keyalg "RSA" -file <certificate.csr> -keystore <keys.p12> -storetype pkcs12 -storepass <secret> ,keystore的名稱是上一步產生的 keystore的檔案名稱。如下圖,完成後會生成一個.csr的檔案,複製其中的內容,申請憑證。




二、在 Root CA 申請憑證 以 Windows的企業 Root CA為例。打開 Root CA的憑證申請頁面(http://CA/certsrv),在頁面「申請憑證」 → 「進階憑證要求」→「用 Base-64編碼的 CMC或 PKCS#10檔案來提交憑證要求,或用 Base-64編碼的 PKCS#7檔案提交更新要求」。  
內容貼上在 Base-64編碼的憑證申請框中。 然後憑證範本選擇「網頁伺服器」。要求完成後,在網頁上下載憑證。 三、將憑證導入到 keystore 如果下載的憑證是 PKCS#10格式(.cer)的話,需要將其轉換成 PKCS#7格式,轉換的方式很簡單,打開憑證檔案 → 「Detail」頁面 → 「複製到檔案」→ 下一步 → 選擇「加密編譯訊息語法標準 - PKCS #7 憑證(.P7B)」,並勾選「如果可能的話,包含憑證路徑中的所有憑證(I)」→ 下一步,輸入新憑證檔案的檔名 → 完成。 使用下指令將簽發的憑證導入到 keystore中: keytool -import -keystore <keys.p12> -storetype pkcs12 -storepass <secret> -keyalg "RSA" -trustcacerts -file <certificate.p7b> 其中 keys.P12是 keystore的檔名,certificate.p7b是剛才產生的憑證的檔名。  

四、在 View的連接伺服器中修改設定更換憑證 將 keystore檔案複製到 Connection Sever/Replica Server/View Security的存放憑證設定的目錄中,預設情況下目錄為 C:\Program files\VMware\VMware View\Server\sslgateway\conf\。 將 keystore和其密碼寫入設定檔,設定檔為 locked.properties,如果這個檔案不存在,手動建立一個。然後打開,在其中鍵入下列兩行文字,分別為: Keyfile=keys.p12 Keypass=password 其中 keys.p12代表 keystore檔案的名稱,password則是 keystore的密碼。





最後,只需要重新開機 VMware View Connection Server,新的憑書就可以使用了,現在所有的使用者終端可以自動信任其證書,這樣就可以有一個安全的VMware View的桌面虛擬化憑證環境了。