如何使用 Managed 程式代碼在 Configuration Manager 中連線至 SMS 提供者

若要連線到 SMS 提供者,請使用 WqlConnectionManager.Connect。 聯機之後,WqlConnectionManager.Connect 具有查詢、建立、刪除及使用 Configuration Manager Windows Management Instrumentation (WMI) 物件的方法。

注意事項

WqlConnectionManager.ConnectConnectionManagerBase 的 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提供者

  1. 建立 SmsNamedValuesDictionaryObject

  2. 建立 WqlConnectionManager 類別的實例,並呼叫傳遞伺服器名稱的 [Connect] 方法,如果伺服器名稱是遠端,則為使用者名稱和密碼。

  3. 使用 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 例外狀況為 SmsConnectionExceptionSmsQueryException。 這些可以與 SmsException一起攔截。

.NET Framework 安全性

當錯誤的認證傳遞至 WqlConnectionManager.Connect 時,會引發 UnauthorizedAccessException

另請參閱

SMS 提供者基本概念如何使用 Managed 程式代碼新增 Configuration Manager 內容限定符
物件概觀