--如果是读取SQL服务器上的注册表内容,用下面的方法就可以解决了.xp_regdeletekey
This extended stored procedure will delete an entire key from the registry.
 You should use it very carefully.Syntax:EXECUTE xp_regdeletekey [@rootkey=]'rootkey',
                        [@key=]'key'  
For example, to delete the key 'SOFTWARE\Test' from 'HKEY_LOCAL_MACHINE', run:EXEC master..xp_regdeletekey
     @rootkey='HKEY_LOCAL_MACHINE',  
     @key='SOFTWARE\Test' 
xp_regdeletevalue
This extended stored procedure will delete a particular value for a key in 
the registry. You should use it very carefully.Syntax:EXECUTE xp_regdeletevalue [@rootkey=]'rootkey',
                          [@key=]'key',
                          [@value_name=]'value_name' 
For example, to delete the value 'TestValue' for the key 'SOFTWARE\Test' 
from 'HKEY_LOCAL_MACHINE', run:EXEC master..xp_regdeletevalue
     @rootkey='HKEY_LOCAL_MACHINE',
     @key='SOFTWARE\Test',
     @value_name='TestValue' 
xp_regread
This extended stored procedure is used to read from the registry.Syntax:EXECUTE xp_regread [@rootkey=]'rootkey',
                   [@key=]'key'
                   [, [@value_name=]'value_name']
                   [, [@value=]@value OUTPUT]  
For example, to read into the variable @test from the value 'TestValue' 
from the key 'SOFTWARE\Test' from the 'HKEY_LOCAL_MACHINE', run:DECLARE @test varchar(20)
EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE',
  @key='SOFTWARE\Test',
  @value_name='TestValue',
  @value=@test OUTPUT
SELECT @test 
xp_regwrite
This extended stored procedure is used to write to the registry.Syntax:EXECUTE xp_regwrite [@rootkey=]'rootkey',
                    [@key=]'key',
                    [@value_name=]'value_name',
                    [@type=]'type',
                    [@value=]'value' 
For example, to write the variable 'Test' to the 'TestValue' value, key 
'SOFTWARE\Test', 'HKEY_LOCAL_MACHINE', run:EXEC master..xp_regwrite
     @rootkey='HKEY_LOCAL_MACHINE',
     @key='SOFTWARE\Test',
     @value_name='TestValue',
     @type='REG_SZ',
     @value='Test'

解决方案 »

  1.   

    如果,指定的机器不是SQL Server,又如何处理。除了DCOM方式外,还有没有其它方法,能读取远程机器的注册表,
    必须能读到HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\下。
      

  2.   

    YOU CAN SEE BELOW IN sqlserver BOL:
    How to configure DCOM to run the Merge Agent remotely
      

  3.   

    如果指定机器不是SQL Server,除DCOM外,没其他什么办法了.
      

  4.   

    真实需求是这样的:
    有一现成系统,客户在运行中,n-tier方式的。现在,局域网上有一些新的需求,我想采用C/S方式解决,就必须要获得AppServer上数据库的登录信息。对原有系统,我是没有原码的,
    唯一知道的是在AppServer注册表上写明了数据库的登录信息。如何获得这些信息,我有几种方案:
    (1)Windows2000有无直接读取远程机器注册表的DCOM。
    (2)如果没有系统的DCOM,有无其它方法。
    (3)自已动手做一个DCOM,运行在AppServer上,与原系统并行。
    (4)自已完成数据库登录程序或帐套管理程序,与原系统无关。
    后两种方式,用户接受程序较低,现想办法实现前两种方法。