RegistryKey.OpenRemoteBaseKey Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Открывает новый объект T:Microsoft.Win32.RegistryKey, который представляет запрошенный раздел на удаленном компьютере в указанном представлении реестра.
Перегрузки
OpenRemoteBaseKey(RegistryHive, String) |
Открытие нового раздела RegistryKey, который представляет запрошенный раздел на удаленном компьютере. |
OpenRemoteBaseKey(RegistryHive, String, RegistryView) |
Открывает новый раздел реестра, который представляет запрошенный раздел на удаленном компьютере в указанном представлении. |
OpenRemoteBaseKey(RegistryHive, String)
- Исходный код:
- RegistryKey.cs
Открытие нового раздела RegistryKey, который представляет запрошенный раздел на удаленном компьютере.
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
Параметры
- hKey
- RegistryHive
Открываемый раздел HKEY, из перечисления RegistryHive.
- machineName
- String
Удаленный компьютер.
Возвращаемое значение
Запрошенный раздел реестра.
Исключения
hKey
недопустим.
machineName
не найден.
machineName
имеет значение null
.
У пользователя отсутствуют разрешения, необходимые для выполнения этой операции.
У пользователя отсутствуют необходимые права доступа к реестру.
Примеры
В следующем примере кода показано, как открыть раздел реестра на удаленном компьютере и перечислить значения ключа. На удаленном компьютере должна быть запущена служба удаленного реестра. Укажите имя удаленного компьютера в качестве аргумента командной строки при вызове программы.
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
Комментарии
Реестр локальных компьютеров открывается, если machineName
имеет значение String.Empty. Запрошенный ключ должен быть корневым ключом на удаленном компьютере и идентифицироваться соответствующим RegistryHive значением.
Чтобы ключ открывался удаленно, на сервере и клиентском компьютере должна быть запущена служба удаленного реестра и включена функция удаленного администрирования.
См. также раздел
Применяется к
OpenRemoteBaseKey(RegistryHive, String, RegistryView)
- Исходный код:
- RegistryKey.cs
Открывает новый раздел реестра, который представляет запрошенный раздел на удаленном компьютере в указанном представлении.
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
Параметры
- hKey
- RegistryHive
Открываемый раздел HKEY из перечисления RegistryHive.
- machineName
- String
Удаленный компьютер.
- view
- RegistryView
Представление реестра для использования.
Возвращаемое значение
Запрошенный раздел реестра.
- Атрибуты
Исключения
Недопустимое значение hKey
или view
.
machineName
не найден.
machineName
имеет значение null
.
У пользователя отсутствуют необходимые права доступа к реестру.
У пользователя отсутствуют разрешения, необходимые для выполнения этой операции.
Комментарии
Реестр локальных компьютеров открывается, если machineName
имеет значение String.Empty. Запрошенный ключ должен быть корневым ключом на удаленном компьютере и идентифицироваться соответствующим RegistryHive значением.
Чтобы ключ открывался удаленно, на сервере и клиентском компьютере должна быть запущена служба удаленного реестра и включена функция удаленного администрирования.
В 64-разрядных версиях Windows части реестра хранятся отдельно для 32-разрядных и 64-разрядных приложений. Существует 32-разрядное представление для 32-разрядных приложений и 64-разрядное представление для 64-разрядных приложений. Если view
имеет значение , Registry64 но удаленный компьютер работает под управлением 32-разрядной операционной системы, возвращенный ключ будет использовать Registry32 представление.