マネージド コードを使用してConfiguration Managerで SMS プロバイダーに接続する方法
SMS プロバイダーに接続するには、 WqlConnectionManager.Connect を使用します。 接続後、WqlConnectionManager.Connect には、Windows Management Instrumentation (WMI) オブジェクトConfiguration Managerクエリ、作成、削除、その他の方法で使用するメソッドがあります。
注:
WqlConnectionManager.Connect は、 ConnectionManagerBase の WMI 固有の派生です。
ローカル SMS プロバイダーに接続している場合は、ユーザー資格情報を指定しません。 リモート SMS プロバイダーに接続する場合、現在のユーザー/コンピューター コンテキストにリモート SMS プロバイダーに対するアクセス許可がある場合は、ユーザー資格情報を指定する必要はありません。
リモート SMS プロバイダーに対するアクセス権がない場合、または別のユーザー アカウントを使用する場合は、アクセス権を持つユーザー アカウントのユーザー資格情報を指定する必要があります。
WQLConnectionManager.Connection には 、SmsNamedValuesDictionary オブジェクトが 必要です。 これは、コンピューター名などのキャッシュされた情報を格納するために使用できます。
アプリケーションで使用できる値が事前に設定されています。
値 | 説明 |
---|---|
ProviderLocation | プロバイダーの場所。 例えば、 \\<ComputerName>\ROOT\sms:SMS_ProviderLocation.SiteCode="XXX" |
ProviderMachineName | プロバイダー コンピューター。 たとえば、\\ComputerName です。 |
Connection | 接続パス。 たとえば、\\ComputerName\root\sms\site_XXX。 |
ConnectedSiteCode | 接続が接続されているConfiguration Manager サイトのサイト コード。 たとえば、XXX です。 |
ServerName | コンピューター名 (COMPUTERNAME など)。 |
Sitename | Configuration Manager サイト コード。 たとえば、セントラル サイトです。 |
ConnectedServerVersion | 接続されたサーバーのバージョン。 たとえば、4.00.5830.0000 などです。 |
BuildNumber | Configuration Managerインストール ビルド番号。 たとえば、5830 です。 |
注:
SmsNamedValuesDictionary オブジェクトは、プロバイダーに渡されるコンテキスト修飾子情報ではありません。 詳細については、「マネージド コードを使用してConfiguration Manager コンテキスト修飾子を追加する方法」を参照してください。
SMS プロバイダーに接続するには
SmsNamedValuesDictionaryObject を作成します。
WqlConnectionManager クラスのインスタンスを作成し、サーバー名を渡す [Connect] メソッドを呼び出し、サーバー名がリモートの場合はユーザー名とパスワードを呼び出します。
WqlConnectionManager オブジェクトを使用してプロバイダーに接続します。
例
次の例のメソッドは、ローカル コンピューターまたはリモート コンピューター上の SMS プロバイダーに接続します。 がリモートの場合 servername
、メソッドは指定されたユーザー名とパスワードを使用してリモート コンピューターに接続します。 現在のユーザー コンテキストを使用する場合は、リモート接続に対して、ユーザー名とパスワードが渡されないようにコードを変更します。 接続が成功した場合は、 WqlConnectionManager オブジェクトが返されます。
サンプル コードの呼び出しについては、「Configuration Manager コード スニペットの呼び出し」を参照してください。
public WqlConnectionManager Connect(string serverName, string userName, string userPassword)
{
try
{
SmsNamedValuesDictionary namedValues = new SmsNamedValuesDictionary();
WqlConnectionManager connection = new WqlConnectionManager(namedValues);
if (System.Net.Dns.GetHostName().ToUpper() == serverName.ToUpper())
{
// Connect to local computer.
connection.Connect(serverName);
}
else
{
// Connect to remote computer.
connection.Connect(serverName, userName, userPassword);
}
return connection;
}
catch (SmsException e)
{
Console.WriteLine("Failed to Connect. Error: " + e.Message);
return null;
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine("Failed to authenticate. Error:" + e.Message);
return null;
}
}
コードのコンパイル
名前空間
System
System.Collections.Generic
System.ComponentModel
Microsoft。ConfigurationManagement.ManagementProvider
Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine
Microsoft。ManagementConsole
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Microsoft。ManagementConsole
堅牢なプログラミング
発生できるConfiguration Manager例外は、SmsConnectionException と SmsQueryException です。 これらは SmsException と一緒にキャッチできます。
.NET Framework のセキュリティ
不正な資格情報が WqlConnectionManager.Connect に渡されると、UnauthorizedAccessException が発生します。
関連項目
SMS プロバイダーの基礎マネージド コードを使用してConfiguration Managerコンテキスト修飾子を追加する方法
オブジェクトの概要