次の方法で共有


RegistryHive 列挙体

外部コンピュータの最上位ノードの有効値を表します。

<Serializable>
Public Enum RegistryHive
[C#]
[Serializable]
public enum RegistryHive
[C++]
[Serializable]
__value public enum RegistryHive
[JScript]
public
   Serializable
enum RegistryHive

解説

RegistryHive の値は、 OpenRemoteBaseKey メソッドにより使用され、外部 (リモート) コンピュータ上の要求されたキーの最上位ノードを表します。OpenRemoteBaseKey メソッドを使用してオープンできるノードは、最上位レベル RegistryKeys のいずれかである必要があります。ユーザーに適切なアクセス許可が設定されている場合は、 RegistryKey のメソッドを使用して、識別されたノードのサブキーにアクセスできます。

メンバ

メンバ名 説明
ClassesRoot 別のコンピュータの HKEY_CLASSES_ROOT 基本キーを表します。この値を OpenRemoteBaseKey メソッドに渡すと、このノードをリモートから開くことができます。
CurrentConfig 別のコンピュータの HKEY_CURRENT_CONFIG 基本キーを表します。この値を OpenRemoteBaseKey メソッドに渡すと、このノードをリモートから開くことができます。
CurrentUser 別のコンピュータの HKEY_CURRENT_USER 基本キーを表します。この値を OpenRemoteBaseKey メソッドに渡すと、このノードをリモートから開くことができます。
DynData 別のコンピュータの HKEY_DYN_DATA 基本キーを表します。この値を OpenRemoteBaseKey メソッドに渡すと、このノードをリモートから開くことができます。
LocalMachine 別のコンピュータの HKEY_LOCAL_MACHINE 基本キーを表します。この値を OpenRemoteBaseKey メソッドに渡すと、このノードをリモートから開くことができます。
PerformanceData 別のコンピュータの HKEY_PERFORMANCE_DATA 基本キーを表します。この値を OpenRemoteBaseKey メソッドに渡すと、このノードをリモートから開くことができます。
Users 別のコンピュータの HKEY_USERS 基本キーを表します。この値を OpenRemoteBaseKey メソッドに渡すと、このノードをリモートから開くことができます。

使用例

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

 
Imports Microsoft.VisualBasic
Imports System
Imports System.IO
Imports System.Security.Permissions
Imports Microsoft.Win32

<Assembly: RegistryPermissionAttribute( _
    SecurityAction.RequestMinimum, _
    Read := "HKEY_CURRENT_USER\Environment")>
<Assembly: SecurityPermissionAttribute( _
    SecurityAction.RequestMinimum, UnmanagedCode := True)>

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

[C#] 
using System;
using System.IO;
using System.Security.Permissions;
using Microsoft.Win32;

[assembly: RegistryPermissionAttribute(SecurityAction.RequestMinimum,
    Read = @"HKEY_CURRENT_USER\Environment")]
[assembly: SecurityPermissionAttribute(SecurityAction.RequestMinimum,
    UnmanagedCode = true)]

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();
    }
}

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;
using namespace System::Security::Permissions;
using namespace Microsoft::Win32;

[assembly: RegistryPermissionAttribute(SecurityAction::RequestMinimum,
    Read = "HKEY_CURRENT_USER\\Environment")];
[assembly: SecurityPermissionAttribute(SecurityAction::RequestMinimum,
    UnmanagedCode = true)];

void main(int argc, char* argv[])
{
    RegistryKey* environmentKey;

    // Check that an argument was specified when the 
    // program was invoked.
    if(argc == 1)
    {
        Console::WriteLine(S"Error: The name of the remote computer "
            S"must be specified as input on the command line.");
        return;
    }

    try
    {
        // Open HKEY_CURRENT_USER\Environment on a remote computer.
        environmentKey = RegistryKey::OpenRemoteBaseKey(
            RegistryHive::CurrentUser, 
            argv[1])->OpenSubKey(S"Environment");
    }
    catch(IOException* e)
    {
        Console::WriteLine("{0}: {1}", 
            e->GetType()->Name, e->Message);
        return;
    }

    // Print the values.
    Console::WriteLine(S"\nThere are {0} values for {1}.", 
        environmentKey->ValueCount.ToString(), environmentKey->Name);
    String* valueNames __gc [] = 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();
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: Microsoft.Win32

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

Microsoft.Win32 名前空間 | OpenRemoteBaseKey | RegistryKey