RegistryKey.OpenRemoteBaseKey Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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)
- Źródło:
- RegistryKey.cs
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 wyliczenia RegistryHive .
- machineName
- String
Maszyna zdalna.
Zwraca
Żądany klucz rejestru.
Wyjątki
Nazwa hKey
jest niepoprawna.
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. Komputer zdalny musi mieć uruchomioną usługę 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 komputera lokalnego jest otwierany, jeśli machineName
jest to 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 komputery klienckie muszą być uruchomione zdalnej usługi rejestru i mieć włączoną zdalną administrację.
Zobacz też
Dotyczy
OpenRemoteBaseKey(RegistryHive, String, RegistryView)
- Źródło:
- RegistryKey.cs
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 wyliczenia RegistryHive .
- machineName
- String
Maszyna zdalna.
- view
- RegistryView
Widok rejestru do użycia.
Zwraca
Żą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 komputera lokalnego jest otwierany, jeśli machineName
jest to 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 komputery klienckie muszą być uruchomione zdalnej usługi rejestru i mieć włączoną zdalną administrację.
W 64-bitowych wersjach systemu Windows fragmenty rejestru są przechowywane oddzielnie dla aplikacji 32-bitowych i 64-bitowych. Istnieje widok 32-bitowy dla aplikacji 32-bitowych i 64-bitowego widoku dla aplikacji 64-bitowych. Jeśli view
maszyna Registry64 zdalna korzysta z 32-bitowego systemu operacyjnego, zwrócony klucz będzie używać Registry32 widoku.