관리 코드를 사용하여 Configuration Manager SMS 공급자에 연결하는 방법

SMS 공급자에 연결하려면 WqlConnectionManager.Connect를 사용합니다. 연결되면 WqlConnectionManager.Connect에는 WMI(Windows Management Instrumentation) 개체에 Configuration Manager 쿼리, 만들기, 삭제 및 기타 사용을 위한 메서드가 있습니다.

참고

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 개체는 공급자에게 전달된 컨텍스트 한정자 정보가 아닙니다. 자세한 내용은 관리 코드를 사용하여 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 공급자 기본 사항관리 코드를 사용하여 Configuration Manager 컨텍스트 한정자를 추가하는 방법
개체 개요