Compartir a través de


RegistryKey.OpenRemoteBaseKey Método

Definición

Abre un nuevo objeto T:Microsoft.Win32.RegistryKey que representa la clave solicitada en un equipo remoto, con la opción de vista del Registro especificada.

Sobrecargas

OpenRemoteBaseKey(RegistryHive, String)

Abre un nuevo RegistryKey que representa la clave solicitada en un equipo remoto.

OpenRemoteBaseKey(RegistryHive, String, RegistryView)

Abre una nueva clave del Registro que representa la clave solicitada en un equipo remoto con la vista especificada.

OpenRemoteBaseKey(RegistryHive, String)

Source:
RegistryKey.cs

Abre un nuevo RegistryKey que representa la clave solicitada en un equipo remoto.

public:
 static Microsoft::Win32::RegistryKey ^ OpenRemoteBaseKey(Microsoft::Win32::RegistryHive hKey, System::String ^ machineName);
public static Microsoft.Win32.RegistryKey OpenRemoteBaseKey (Microsoft.Win32.RegistryHive hKey, string machineName);
static member OpenRemoteBaseKey : Microsoft.Win32.RegistryHive * string -> Microsoft.Win32.RegistryKey
Public Shared Function OpenRemoteBaseKey (hKey As RegistryHive, machineName As String) As RegistryKey

Parámetros

hKey
RegistryHive

HKEY que se va a abrir, de la enumeración RegistryHive.

machineName
String

Equipo remoto.

Devoluciones

Clave del Registro solicitada.

Excepciones

hKey no es válido.

No se ha encontrado machineName.

machineName es null.

El usuario no tiene los permisos adecuados para realizar esta operación.

El usuario no tiene los derechos necesarios en el Registro.

Ejemplos

En el ejemplo de código siguiente se muestra cómo abrir una clave del Registro en un equipo remoto y enumerar los valores de la clave. El equipo remoto debe ejecutar el servicio de registro remoto. Especifique el nombre del equipo remoto como argumento de línea de comandos al invocar el programa.

using namespace System;
using namespace System::IO;
using namespace System::Security::Permissions;
using namespace Microsoft::Win32;


int main( int argc, char *argv[] )
{
   RegistryKey ^ environmentKey;
   
   // Check that an argument was specified when the 
   // program was invoked.
   if ( argc == 1 )
   {
      Console::WriteLine( "Error: The name of the remote computer "
      "must be specified as input on the command line." );
      return  -1;
   }

   try
   {
      
      // Open HKEY_CURRENT_USER\Environment on a remote computer.
      environmentKey = RegistryKey::OpenRemoteBaseKey( RegistryHive::CurrentUser, gcnew String(argv[ 1 ]) )->OpenSubKey( "Environment" );
   }
   catch ( IOException^ e ) 
   {
      Console::WriteLine(  "{0}: {1}", e->GetType()->Name, e->Message );
      return  -1;
   }

   
   // Print the values.
   Console::WriteLine( "\nThere are {0} values for {1}.", environmentKey->ValueCount.ToString(), environmentKey->Name );
   array<String^>^valueNames = environmentKey->GetValueNames();
   for ( int i = 0; i < environmentKey->ValueCount; i++ )
   {
      Console::WriteLine(  "{0,-20}: {1}", valueNames[ i ], environmentKey->GetValue( valueNames[ i ] )->ToString() );

   }
   
   // Close the registry key.
   environmentKey->Close();
}
using System;
using System.IO;
using System.Security.Permissions;
using Microsoft.Win32;

class RemoteKey
{
    static void Main(string[] args)
    {
        RegistryKey environmentKey;
        string remoteName;

        // Check that an argument was specified when the
        // program was invoked.
        if(args.Length == 0)
        {
            Console.WriteLine("Error: The name of the remote " +
                "computer must be specified when the program is " +
                "invoked.");
            return;
        }
        else
        {
            remoteName = args[0];
        }

        try
        {
            // Open HKEY_CURRENT_USER\Environment
            // on a remote computer.
            environmentKey = RegistryKey.OpenRemoteBaseKey(
                RegistryHive.CurrentUser, remoteName).OpenSubKey(
                "Environment");
        }
        catch(IOException e)
        {
            Console.WriteLine("{0}: {1}",
                e.GetType().Name, e.Message);
            return;
        }

        // Print the values.
        Console.WriteLine("\nThere are {0} values for {1}.",
            environmentKey.ValueCount.ToString(),
            environmentKey.Name);
        foreach(string valueName in environmentKey.GetValueNames())
        {
            Console.WriteLine("{0,-20}: {1}", valueName,
                environmentKey.GetValue(valueName).ToString());
        }

        // Close the registry key.
        environmentKey.Close();
    }
}
Imports System.IO
Imports System.Security.Permissions
Imports Microsoft.Win32


Public Class RemoteKey

    Shared Sub Main(commandLineArgs As String())
    
        Dim environmentKey As RegistryKey

        ' Check that an argument was specified when the 
        ' program was invoked.
        If commandLineArgs.Length = 0 Then
            Console.WriteLine("Error: The name of the remote " & _
                "computer must be specified as input on the " & _
                "command line.")
            Return
        End If

        Try
            ' Open HKEY_CURRENT_USER\Environment on a remote computer.
            environmentKey = RegistryKey.OpenRemoteBaseKey( _
                RegistryHive.CurrentUser, _
                commandLineArgs(0)).OpenSubKey("Environment")
        Catch ex As IOException
            Console.WriteLine("{0}: {1}", _
                ex.GetType().Name, ex.Message)
            Return
        End Try

        ' Print the values.
        Console.WriteLine("\nThere are {0} values For {1}.", _
            environmentKey.ValueCount.ToString(), environmentKey.Name)

        For Each valueName As String In environmentKey.GetValueNames()
            Console.WriteLine("{0,-20}: {1}", valueName, _
                environmentKey.GetValue(valueName).ToString())
        Next

        ' Close the registry key.
        environmentKey.Close()
    
    End Sub
End Class

Comentarios

El registro del equipo local se abre si machineName es String.Empty. La clave solicitada debe ser una clave raíz en la máquina remota y se identifica mediante el valor adecuado RegistryHive .

Para que una clave se abra de forma remota, tanto el servidor como las máquinas cliente deben ejecutar el servicio de registro remoto y tener habilitada la administración remota.

Consulte también

Se aplica a

OpenRemoteBaseKey(RegistryHive, String, RegistryView)

Source:
RegistryKey.cs

Abre una nueva clave del Registro que representa la clave solicitada en un equipo remoto con la vista especificada.

public:
 static Microsoft::Win32::RegistryKey ^ OpenRemoteBaseKey(Microsoft::Win32::RegistryHive hKey, System::String ^ machineName, Microsoft::Win32::RegistryView view);
public static Microsoft.Win32.RegistryKey OpenRemoteBaseKey (Microsoft.Win32.RegistryHive hKey, string machineName, Microsoft.Win32.RegistryView view);
[System.Runtime.InteropServices.ComVisible(false)]
public static Microsoft.Win32.RegistryKey OpenRemoteBaseKey (Microsoft.Win32.RegistryHive hKey, string machineName, Microsoft.Win32.RegistryView view);
static member OpenRemoteBaseKey : Microsoft.Win32.RegistryHive * string * Microsoft.Win32.RegistryView -> Microsoft.Win32.RegistryKey
[<System.Runtime.InteropServices.ComVisible(false)>]
static member OpenRemoteBaseKey : Microsoft.Win32.RegistryHive * string * Microsoft.Win32.RegistryView -> Microsoft.Win32.RegistryKey
Public Shared Function OpenRemoteBaseKey (hKey As RegistryHive, machineName As String, view As RegistryView) As RegistryKey

Parámetros

hKey
RegistryHive

HKEY que se va a abrir desde la enumeración RegistryHive.

machineName
String

Equipo remoto.

view
RegistryView

Vista del Registro que se va a usar.

Devoluciones

Clave del Registro solicitada.

Atributos

Excepciones

hKey o view no es válido.

No se ha encontrado machineName.

machineName es null.

El usuario no tiene los derechos necesarios en el Registro.

El usuario no tiene los permisos necesarios para realizar esta operación.

Comentarios

El registro del equipo local se abre si machineName es String.Empty. La clave solicitada debe ser una clave raíz en la máquina remota y se identifica mediante el valor adecuado RegistryHive .

Para que una clave se abra de forma remota, tanto el servidor como las máquinas cliente deben ejecutar el servicio de registro remoto y tener habilitada la administración remota.

En las versiones de 64 bits de Windows, las partes del registro se almacenan por separado para aplicaciones de 32 y 64 bits. Hay una vista de 32 bits para aplicaciones de 32 bits y una vista de 64 bits para aplicaciones de 64 bits. Si view es Registry64 pero la máquina remota ejecuta un sistema operativo de 32 bits, la clave devuelta usará la Registry32 vista.

Se aplica a