RegistryKey.OpenRemoteBaseKey Metoda

Definicja

Otwiera nowy klucz T:Microsoft.Win32.RegistryKey reprezentujący żądany klucz na maszynie zdalnej z opcją określonego widoku rejestru.

Przeciążenia

OpenRemoteBaseKey(RegistryHive, String)

Otwiera nowy RegistryKey , który reprezentuje żądany klucz na maszynie zdalnej.

OpenRemoteBaseKey(RegistryHive, String, RegistryView)

Otwiera nowy klucz rejestru reprezentujący żądany klucz na maszynie zdalnej z określonym widokiem.

OpenRemoteBaseKey(RegistryHive, String)

Otwiera nowy RegistryKey , który reprezentuje żądany klucz na maszynie zdalnej.

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

Parametry

hKey
RegistryHive

Klucz HKEY do otwarcia z RegistryHive wyliczenia.

machineName
String

Maszyna zdalna.

Zwraca

RegistryKey

Żądany klucz rejestru.

Wyjątki

hKey jest nieprawidłowy.

machineName nie można odnaleźć.

machineName to null.

Użytkownik nie ma odpowiednich uprawnień do wykonania tej operacji.

Użytkownik nie posiada niezbędnych praw wobec rejestru.

Przykłady

Poniższy przykład kodu pokazuje, jak otworzyć klucz rejestru na komputerze zdalnym i wyliczyć wartości klucza. Na komputerze zdalnym musi być uruchomiona usługa rejestru zdalnego. Określ nazwę komputera zdalnego jako argument wiersza polecenia podczas wywoływania programu.

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

Uwagi

Rejestr maszyn lokalnych jest otwierany, jeśli machineName ma wartość String.Empty. Żądany klucz musi być kluczem głównym na maszynie zdalnej i jest identyfikowany przez odpowiednią RegistryHive wartość.

Aby klucz był otwierany zdalnie, zarówno serwer, jak i maszyny klienckie muszą mieć uruchomioną usługę rejestru zdalnego i mają włączoną administrację zdalną.

Zobacz też

Dotyczy

OpenRemoteBaseKey(RegistryHive, String, RegistryView)

Otwiera nowy klucz rejestru reprezentujący żądany klucz na maszynie zdalnej z określonym widokiem.

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

Parametry

hKey
RegistryHive

Klucz HKEY do otwarcia z RegistryHive wyliczenia.

machineName
String

Maszyna zdalna.

view
RegistryView

Widok rejestru do użycia.

Zwraca

RegistryKey

Żądany klucz rejestru.

Atrybuty

Wyjątki

hKey lub view jest nieprawidłowy.

machineName nie można odnaleźć.

machineName to null.

Użytkownik nie posiada niezbędnych praw wobec rejestru.

Użytkownik nie ma wymaganych uprawnień do wykonania tej operacji.

Uwagi

Rejestr maszyn lokalnych jest otwierany, jeśli machineName ma wartość String.Empty. Żądany klucz musi być kluczem głównym na maszynie zdalnej i jest identyfikowany przez odpowiednią RegistryHive wartość.

Aby klucz był otwierany zdalnie, zarówno serwer, jak i maszyny klienckie muszą mieć uruchomioną usługę rejestru zdalnego i mają włączoną administrację zdalną.

W 64-bitowych wersjach Windows części rejestru są przechowywane oddzielnie dla aplikacji 32-bitowych i 64-bitowych. Istnieje widok 32-bitowy dla aplikacji 32-bitowych i widok 64-bitowy dla aplikacji 64-bitowych. Jeśli view jest Registry64 , ale maszyna zdalna korzysta z 32-bitowego systemu operacyjnego, zwrócony klucz użyje Registry32 widoku.

Dotyczy