遠端登錄檔訪問 (轉)

worldblog發表於2007-12-09
遠端登錄檔訪問 (轉)[@more@]   登錄檔訪問
<!--指南--&gt
  登錄檔訪問(Registry Access控制元件)是一個用VC編寫的Server Component,它封裝了對登錄檔的所有操作,通常用來擴充套件VB或其它程式設計工具的登錄檔訪問功能。管理員可以把它嵌入頁面中,從而實現對或遠端主機的登錄檔系統進行維護。這是一個免費控制元件,可以從的站點上。

  RAC有Alpha和i386兩個版本,名都叫Reg.dll。使用時根據自己的平臺選擇其中一個,然後用如下DOS命令進行註冊:

  Regsvr32 Reg.dll /s

  RAC一共有12個方法,透過它們可以對登錄檔的鍵和屬性值進行新增、刪除、查詢、複製等操作。下面將介紹RAC在VB和ASP中的應用,並討論如何解決潛在的問題。

  一、RAC在VB中的應用

  首先在專案的引用列表中加入IISSample Registry Access 庫,然後用如下語句定義一個登錄檔物件:

  Dim Reg As New RegistryAccess.CregObj

  對登錄檔的所有操作都可以透過Reg物件的方法來完成,例如:

  1.讀取登錄檔

  下面的語句顯示了虛擬機器的類路徑:

  De.Print Reg.Get(″HKLMSoftwareJava VMClasspath″)

  讀取登錄檔的另一個方法是GetExpand,它可以讀取REG—EXPAND—SZ、 REG—D和REG—SZ型別的屬性值,GetExpand和Get的區別在於:GetExpand會把返回值中的環境變數替換為實際值,在 NT下,%System%將被替換為:C:Winnt,而Get則不會。若要把登錄檔中環境變數直接替換為實際值,可以用ExpandString方法。

  2.修改登錄檔

  下面的命令將HKLMSoftwareAlexander鍵下的Name屬性值改為JQ:

  Reg.Set ″HKLMSoftwareAlexanderName″, ″JQ″, True

  類似的方法還有SetExpand,它把登錄檔屬性值的資料型別設定為:REG—EXPAND—SZ,表示其中包含環境變數,可以用GetExpand擴充套件。

  以上例子中,HKLM是HKEY—LOCAL—MACHINE縮寫,最後一個引數為True表示將修改立即寫回登錄檔,而不是留在緩衝區。

  其餘幾個方法是:CopyKey(複製鍵)、DeleteKey(刪除鍵)、DeleteValue(刪除屬性值)、ValueType(判斷屬性值的資料型別)、KeyExists(判斷一個鍵是否存在),它們的用法比較簡單,這裡不一一介紹。

  最後,在退出之前,別忘了用如下語句銷燬登錄檔物件:

  Set Reg = Nothing ′Reg.dll仍駐留

  二、透過RAC訪問遠端主機的登錄檔

  微軟開發RAC的主要目的就是為了擴充套件ASP的登錄檔訪問功能,以便對遠端主機的登錄檔系統進行維護。

  RAC在ASP指令碼中的用法和VB幾乎完全一樣,只是物件建立的方式稍有不同,下面是一段ASP指令碼:

   〈%

    Set Reg = Server.Create(″IISSample.RegistryAccess″)′建立伺服器物件

Reg.Set ″HKLMSoftware MyCompany MyNumber″, 12345, True

Reg.Set ″HKLMSoftwareMyComp anyMyString″, ″hello, world″

MyReg.DeleteKey ″HKEY—CURRENT—USER MyCompany″%〉

  它為MyCompany鍵新增了兩個屬性,並刪除HKCUSoftware的子鍵MyCompany。如果你的Web伺服器交由別人託管,那麼透過RAC對其登錄檔進行遠端維護是值得推薦的。但是,作為員,你應該充分考慮到上面這段指令碼後可能帶來的後果!預設情況下,匿名IUSR—machinename也能執行這段指令碼,因此也就能對登錄檔進行修改,這是不安全的,對登錄檔的誤操作可能導致系統不可用。

  所以,系統管理員應該取消所有涉及登錄檔修改的ASP檔案的匿名訪問權,這樣,當客戶請求到這些檔案時,Web伺服器就會觸發的盤問和應答,要求輸入使用者名稱和密碼,只有透過驗證後,ASP檔案才能執行,登錄檔才會被修改。若ASP檔案存放在NTFS捲上,你也可以把它們的訪問權授予特定的域使用者或組,其它的使用者就無權訪問。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990313/,如需轉載,請註明出處,否則將追究法律責任。

相關文章