ConnectionOptions.Impersonation プロパティ
アセンブリ: System.Management (system.management.dll 内)

Public Property Impersonation As ImpersonationLevel
Dim instance As ConnectionOptions Dim value As ImpersonationLevel value = instance.Impersonation instance.Impersonation = value
public ImpersonationLevel Impersonation { get; set; }
public: property ImpersonationLevel Impersonation { ImpersonationLevel get (); void set (ImpersonationLevel value); }
/** @property */ public ImpersonationLevel get_Impersonation () /** @property */ public void set_Impersonation (ImpersonationLevel value)
public function get Impersonation () : ImpersonationLevel public function set Impersonation (value : ImpersonationLevel)
WMI への接続に使用される偽装レベルを示す ImpersonationLevel 列挙値を返します。

プロバイダが信頼されたアプリケーションまたはサービスの場合は、ImpersonationLevel.Impersonate の設定が効果的です。これによってプロバイダは、要求された操作に対してクライアント ID およびアクセス許可のチェックを行う必要がなくなります。ただしプロバイダが何らかの理由で信頼性に欠ける場合に、クライアントの偽装を許可すると、セキュリティが脆弱になる可能性があります。この対策として、このプロパティに ImpersonationLevel.Identify などの低い値をクライアントによって設定されるようにすることをお勧めします。この場合は、十分なアクセス許可がないため、またはアクセス許可のチェックが完全に行われないため、プロバイダが要求された操作を実行するときに失敗する可能性があることに注意してください。
プロパティ値この接続の操作に使用する COM 偽装レベル。既定値は ImpersonationLevel.Impersonate です。この値は、この接続で要求された操作を実行するときに WMI プロバイダがクライアントを偽装できることを示します。

リモート コンピュータに接続して、リモート コンピュータ上のオペレーティング システムに関する情報を表示する例を次に示します。目的の接続オプションを使用してリモート コンピュータに接続するために、ConnectionOptions が作成されます。
Imports System 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
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"]); } } }


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ConnectionOptions.Impersonation プロパティのページへのリンク