RegistryKey.OpenRemoteBaseKey Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.