Partilhar via


RegistryKey.OpenRemoteBaseKey Método

Definição

Abre uma nova T:Microsoft.Win32.RegistryKey que representa a chave solicitada em um computador remoto, com a opção de exibição do Registro especificada.

Sobrecargas

OpenRemoteBaseKey(RegistryHive, String)

Abre um novo RegistryKey que representa a chave solicitada em um computador remoto.

OpenRemoteBaseKey(RegistryHive, String, RegistryView)

Abre uma nova chave do Registro que representa a chave solicitada em um computador remoto com a exibição especificada.

OpenRemoteBaseKey(RegistryHive, String)

Origem:
RegistryKey.cs

Abre um novo RegistryKey que representa a chave solicitada em um computador 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

O HKEY a abrir, da enumeração RegistryHive.

machineName
String

O computador remoto.

Retornos

A chave do Registro solicitada.

Exceções

hKey é inválido.

machineName não foi encontrado.

machineName é null.

O usuário não tem as permissões adequadas para executar esta operação.

O usuário não tem os direitos do Registro necessários.

Exemplos

O exemplo de código a seguir mostra como abrir uma chave do Registro em um computador remoto e enumerar os valores da chave. O computador remoto deve estar executando o serviço de registro remoto. Especifique o nome do computador remoto como um argumento de linha de comando ao invocar o 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

Comentários

O registro do computador local será aberto se machineName for String.Empty. A chave solicitada deve ser uma chave raiz no computador remoto e é identificada pelo valor apropriado RegistryHive .

Para que uma chave seja aberta remotamente, os computadores cliente e o servidor devem estar executando o serviço de registro remoto e ter a administração remota habilitada.

Confira também

Aplica-se a

OpenRemoteBaseKey(RegistryHive, String, RegistryView)

Origem:
RegistryKey.cs

Abre uma nova chave do Registro que representa a chave solicitada em um computador remoto com a exibição 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

O HKEY a ser aberto da enumeração RegistryHive.

machineName
String

O computador remoto.

view
RegistryView

O modo de exibição do Registro a ser usado.

Retornos

A chave do Registro solicitada.

Atributos

Exceções

hKey ou view é inválido.

machineName não foi encontrado.

machineName é null.

O usuário não tem os direitos do Registro necessários.

O usuário não tem a permissão necessária para executar essa operação.

Comentários

O registro do computador local será aberto se machineName for String.Empty. A chave solicitada deve ser uma chave raiz no computador remoto e é identificada pelo valor apropriado RegistryHive .

Para que uma chave seja aberta remotamente, os computadores cliente e o servidor devem estar executando o serviço de registro remoto e ter a administração remota habilitada.

Nas versões de 64 bits do Windows, partes do Registro são armazenadas separadamente para aplicativos de 32 bits e 64 bits. Há uma exibição de 32 bits para aplicativos de 32 bits e uma exibição de 64 bits para aplicativos de 64 bits. Se view for Registry64 , mas o computador remoto estiver executando um sistema operacional de 32 bits, a chave retornada usará a exibição Registry32 .

Aplica-se a