ConnectionOptions.Impersonation ConnectionOptions.Impersonation ConnectionOptions.Impersonation ConnectionOptions.Impersonation Property

定義

この接続の操作に使用する COM 偽装レベルを取得または設定します。Gets or sets the COM impersonation level to be used for operations in this connection.

public:
 property System::Management::ImpersonationLevel Impersonation { System::Management::ImpersonationLevel get(); void set(System::Management::ImpersonationLevel value); };
public System.Management.ImpersonationLevel Impersonation { get; set; }
member this.Impersonation : System.Management.ImpersonationLevel with get, set
Public Property Impersonation As ImpersonationLevel

プロパティ値

WMI への接続に使用される偽装レベルを示す ImpersonationLevel 列挙値を返します。Returns an ImpersonationLevel enumeration value indicating the impersonation level used to connect to WMI.

次の例では、リモートコンピューターに接続し、リモートコンピューターのオペレーティングシステムに関する情報を表示します。The following example connects to a remote computer and displays information about the operating system on the remote computer. 必要ConnectionOptionsな接続オプションを使用してリモートコンピューターに接続するためのが作成されます。A ConnectionOptions is created to connect to the remote computer with the desired connection options.

using System;
using System.Management;
public class RemoteConnect 
{
    public static void Main() 
    {
        // Build an options object for the remote connection
        // if you plan to connect to the remote
        // computer with a different user name
        // and password than the one you are currently using.
        // This example uses the default values.  
        ConnectionOptions options = 
            new ConnectionOptions();
        options.Impersonation = 
            System.Management.ImpersonationLevel.Impersonate;
                 
        // Make a connection to a remote computer.
        // Replace the "FullComputerName" section of the
        // string "\\\\FullComputerName\\root\\cimv2" with
        // the full computer name or IP address of the
        // remote computer.
        ManagementScope scope = 
            new ManagementScope(
            "\\\\FullComputerName\\root\\cimv2", options);
        scope.Connect();

        //Query system for Operating System information
        ObjectQuery query = new ObjectQuery(
            "SELECT * FROM Win32_OperatingSystem");
        ManagementObjectSearcher searcher = 
            new ManagementObjectSearcher(scope,query);

        ManagementObjectCollection queryCollection = searcher.Get();
        foreach ( ManagementObject m in queryCollection)
        {
            // Display the remote computer information
            Console.WriteLine("Computer Name : {0}", 
                m["csname"]);
            Console.WriteLine("Windows Directory : {0}", 
                m["WindowsDirectory"]);
            Console.WriteLine("Operating System: {0}",  
                m["Caption"]);
            Console.WriteLine("Version: {0}", m["Version"]);
            Console.WriteLine("Manufacturer : {0}", 
                m["Manufacturer"]);
        }
    }
}
Imports System.Management
Public Class RemoteConnect

    Public Overloads Shared Function Main( _
    ByVal args() As String) As Integer

        ' Build an options object for the remote connection
        ' if you plan to connect to the remote
        ' computer with a different user name
        ' and password than the one you are currently using
        Dim options As ConnectionOptions
        options = New ConnectionOptions
        options.Impersonation = 3
        ' System.Management.ImpersonationLevel.Impersonate = 3

        ' Make a connection to a remote computer.
        ' Replace the "FullComputerName" section of the
        ' string "\\FullComputerName\root\cimv2" with
        ' the full computer name or IP address of the
        ' remote computer.
        Dim scope As ManagementScope
        scope = New ManagementScope( _
            "\\FullComputerName\root\cimv2", options)
        scope.Connect()

        ' Query system for Operating System information
        Dim query As ObjectQuery
        query = New ObjectQuery( _
            "SELECT * FROM Win32_OperatingSystem")
        Dim searcher As ManagementObjectSearcher
        searcher = _
            New ManagementObjectSearcher(scope, query)

        Dim queryCollection As ManagementObjectCollection
        queryCollection = searcher.Get()

        Dim m As ManagementObject
        For Each m In queryCollection
            ' Display the remote computer information
            Console.WriteLine("Computer Name : {0}", _
                m("csname"))
            Console.WriteLine("Windows Directory : {0}", _
                m("WindowsDirectory"))
            Console.WriteLine("Operating System: {0}", _
                m("Caption"))
            Console.WriteLine("Version: {0}", m("Version"))
            Console.WriteLine("Manufacturer : {0}", _
                m("Manufacturer"))
        Next

        Return 0
    End Function
End Class

注釈

このImpersonationLevel.Impersonate設定は、プロバイダーが信頼されたアプリケーションまたはサービスである場合に便利です。The ImpersonationLevel.Impersonate setting is advantageous when the provider is a trusted application or service. これにより、プロバイダーが要求された操作のクライアント id とアクセスチェックを実行する必要がなくなります。It eliminates the need for the provider to perform client identity and access checks for the requested operations. ただし、何らかの理由でプロバイダーが信頼できない場合、クライアントの偽装を許可すると、セキュリティ上の脅威になる可能性があります。However, if for some reason the provider cannot be trusted, allowing it to impersonate the client may constitute a security threat. このような場合は、このプロパティをより小さい値 (など) ImpersonationLevel.Identifyに設定することをお勧めします。In such cases, we recommend that this property be set by the client to a lower value, such as ImpersonationLevel.Identify. これにより、十分なアクセス許可がない場合やアクセスチェックを実行できない場合に、プロバイダーが要求された操作を実行できなくなることがあります。Note that this may cause failure of the provider to perform the requested operations, for lack of sufficient permissions or inability to perform access checks.

プロパティ値Property Value

この接続の操作に使用する COM 偽装レベル。The COM impersonation level to be used for operations in this connection. 既定値はですImpersonationLevel.Impersonate。これは、この接続で要求された操作を実行するときに、WMI プロバイダーがクライアントを偽装できることを示します。The default value is ImpersonationLevel.Impersonate, which indicates that the WMI provider can impersonate the client when performing the requested operations in this connection.

.NET Framework セキュリティ.NET Framework Security

直前の呼び出し元に対する完全な信頼。Full trust for the immediate caller. このメンバーは、部分的に信頼されているコードから使用することはできません。This member cannot be used by partially trusted code. 詳細については、「部分信頼コードからのライブラリの使用」を参照してください。For more information, see Using Libraries from Partially Trusted Code.

適用対象