如何使用 Managed 程式代碼在 Configuration Manager 中連線至 SMS 提供者
若要連線到 SMS 提供者,請使用 WqlConnectionManager.Connect。 聯機之後,WqlConnectionManager.Connect 具有查詢、建立、刪除及使用 Configuration Manager Windows Management Instrumentation (WMI) 物件的方法。
注意事項
WqlConnectionManager.Connect 是 ConnectionManagerBase 的 WMI 特定衍生。
如果您要連線到本機 SMS 提供者,則不會提供用戶認證。 如果您要連線到遠端SMS提供者,如果目前的使用者/計算機內容具有遠端SMS提供者的許可權,則不需要提供用戶認證。
如果您在遠端 SMS 提供者上沒有存取許可權,或是想要使用不同的使用者帳戶,則必須為具有訪問許可權的使用者帳戶提供使用者認證。
WQLConnectionManager.Connection 需要 SmsNamedValuesDictionary 物件。 這可用來儲存快取的資訊,例如計算機名稱。
它會預先填入許多可在應用程式中使用的值。
值 | 描述。 |
---|---|
ProviderLocation | 提供者位置。 例如: \\<ComputerName>\ROOT\sms:SMS_ProviderLocation.SiteCode=“XXX”。 |
ProviderMachineName | 提供者計算機。 例如,\\ComputerName。 |
連線 | 連接路徑。 例如,\\ComputerName\root\sms\site_XXX。 |
ConnectedSiteCode | 線上所連線之 Configuration Manager 月臺的月臺碼。 例如,XXX。 |
ServerName | 計算機名稱,例如 COMPUTERNAME。 |
SiteName | Configuration Manager 月臺碼。 例如,中央網站。 |
ConnectedServerVersion | 已連線伺服器的版本。 例如,4.00.5830.0000 |
BuildNumber | Configuration Manager 安裝組建編號。 例如,5830。 |
注意事項
SmsNamedValuesDictionary 物件不是傳遞給提供者的內容限定符資訊。 如需詳細資訊,請參閱如何使用Managed程式代碼新增 Configuration Manager內容限定符。
線上到SMS提供者
建立 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.Collections.Generic
System.ComponentModel
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Microsoft.ManagementConsole
組件
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Microsoft.ManagementConsole
健全的程式設計
可引發的 Configuration Manager 例外狀況為 SmsConnectionException 和 SmsQueryException。 這些可以與 SmsException一起攔截。
.NET Framework 安全性
當錯誤的認證傳遞至 WqlConnectionManager.Connect 時,會引發 UnauthorizedAccessException。
另請參閱
SMS 提供者基本概念如何使用 Managed 程式代碼新增 Configuration Manager 內容限定符
物件概觀