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

RegistryHive列挙型から開く HKEY。

machineName
String

リモート コンピューター。

返品

要求されたレジストリ キー。

例外

hKey が無効です。

machineName が見つかりません。

machineNamenullです。

ユーザーには、この操作を実行するための適切なアクセス許可がありません。

ユーザーは必要なレジストリ権限を持っていません。

次のコード例は、リモート コンピューターでレジストリ キーを開き、キーの値を列挙する方法を示しています。 リモート コンピューターがリモート レジストリ サービスを実行している必要があります。 プログラムを呼び出すときに、コマンド ライン引数としてリモート コンピューターの名前を指定します。

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

注釈

machineNameString.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

RegistryHive列挙型から開く HKEY。

machineName
String

リモート コンピューター。

view
RegistryView

使用するレジストリ ビュー。

返品

要求されたレジストリ キー。

属性

例外

hKey または view が無効です。

machineName が見つかりません。

machineNamenullです。

ユーザーは必要なレジストリ権限を持っていません。

ユーザーには、この操作を実行するために必要なアクセス許可がありません。

注釈

machineNameString.Emptyされている場合は、ローカル コンピューター レジストリが開きます。 要求されたキーはリモート コンピューター上のルート キーである必要があり、適切な RegistryHive 値によって識別されます。

キーをリモートで開くには、サーバーマシンとクライアントマシンの両方がリモートレジストリサービスを実行しており、リモート管理が有効になっている必要があります。

Windowsの 64 ビット バージョンでは、レジストリの一部は 32 ビット アプリケーションと 64 ビット アプリケーション用に個別に格納されます。 32 ビット アプリケーションには 32 ビット ビュー、64 ビット アプリケーションには 64 ビット ビューがあります。 viewRegistry64されているが、リモート コンピューターが 32 ビット オペレーティング システムを実行している場合、返されるキーはRegistry32 ビューを使用します。

適用対象