Partilhar via


Como Ligar a um Fornecedor de SMS no Configuration Manager ao Utilizar a WMI

Antes de ligar ao Fornecedor DE SMS para um servidor de site local ou remoto do Gestor de Configuração, primeiro tem de localizar o Fornecedor DE SMS para o servidor do site. O Fornecedor de SMS pode ser local ou remoto para o servidor do site do Gestor de Configuração que está a utilizar. A classe Windows Management Instrumentation (WMI) SMS_ProviderLocation está presente em todos os servidores do site do Gestor de Configuração, e uma instância conterá a localização do servidor do site do Gestor de Configuração que está a usar.

Pode ligar-se ao Fornecedor DE SMS num servidor de site do Gestor de Configuração utilizando o objeto WMI SWbemLocator ou utilizando o método Windows script GetObject Host. Ambas as abordagens funcionam igualmente bem nas ligações locais ou remotas, com as seguintes limitações:

  • Tem de utilizar SWbemLocator se precisar de passar as credenciais do utilizador para um computador remoto.

  • Não é possível utilizar SWbemLocator para passar explicitamente as credenciais dos utilizadores para um computador local.

    Existem várias sintaxes diferentes que pode usar para fazer a ligação, dependendo se a ligação é local ou remota. Depois de estar ligado ao Fornecedor DE SMS, terá um objeto SWbemServices que utiliza para aceder a objetos do Gestor de Configuração.

Nota

Se precisar de adicionar qualificações de contexto para a ligação, consulte como adicionar uma classificativa de contexto do gestor de configuração utilizando o WMI.

Para ligar a um fornecedor de SMS

  1. Obtenha um objeto WbemScripting.SWbemLocator.

  2. Desa estaladiço o nível de autenticação para a privacidade do pacote.

  3. Configurar uma ligação ao Fornecedor SMS utilizando o método ConnectServer do objeto SWbemLocator. Fornecer credenciais apenas se for um computador remoto.

  4. Utilizando a propriedade SMS_ProviderLocation object ProviderForLocalSite, ligue-se ao Fornecedor de SMS para o computador local e receba um objeto SWbemServices.

  5. Utilize o objeto SWbemServices para aceder a objetos do fornecedor. Para obter mais informações, consulte a visão geral dos Objetos.

Exemplos

Os exemplos a seguir ligam-se ao servidor. Em seguida, tenta ligar-se ao Fornecedor DE SMS para esse servidor. Normalmente este será o mesmo computador. Se não for, SMS_ProviderLocation fornece o nome de computador correto.

Para obter informações sobre a chamada do código de amostra, consulte o Código de Identificação do Gestor de Chamadas.

Function Connect(server, userName, userPassword)  

    On Error Resume Next  

    Dim net  
    Dim localConnection  
    Dim swbemLocator  
    Dim swbemServices  
    Dim providerLoc  
    Dim location  

    Set swbemLocator = CreateObject("WbemScripting.SWbemLocator")  

    swbemLocator.Security_.AuthenticationLevel = 6 'Packet Privacy.  

    ' If the server is local, do not supply credentials.  
    Set net = CreateObject("WScript.NetWork")   
    If UCase(net.ComputerName) = UCase(server) Then  
        localConnection = true  
        userName = ""  
        userPassword = ""  
        server = "."  
    End If  

    ' Connect to the server.  
    Set swbemServices= swbemLocator.ConnectServer _  
            (server, "root\sms",userName,userPassword)  
    If Err.Number<>0 Then  
        Wscript.Echo "Couldn't connect: " + Err.Description  
        Connect = null  
        Exit Function  
    End If  

    ' Determine where the provider is and connect.  
    Set providerLoc = swbemServices.InstancesOf("SMS_ProviderLocation")  

        For Each location In providerLoc  
            If location.ProviderForLocalSite = True Then  
                Set swbemServices = swbemLocator.ConnectServer _  
                 (location.Machine, "root\sms\site_" + _  
                    location.SiteCode,userName,userPassword)  
                If Err.Number<>0 Then  
                    Wscript.Echo "Couldn't connect:" + Err.Description  
                    Connect = Null  
                    Exit Function  
                End If  
                Set Connect = swbemServices  
                Exit Function  
            End If  
        Next  
    Set Connect = null ' Failed to connect.  
End Function  

A amostra que se segue liga-se ao servidor remoto utilizando o powerShell e tenta uma ligação SMS.

$siteCode = ''
$siteServer = 'server.domain'

$credentials = Get-Credential
$username = $credentials.UserName

# The connector does not understand a PSCredential. The following command will pull your PSCredential password into a string.
$password = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($credentials.Password))

$NameSpace = "root\sms\site_$siteCode"
$SWbemLocator = New-Object -ComObject "WbemScripting.SWbemLocator"
$SWbemLocator.Security_.AuthenticationLevel = 6
$connection = $SWbemLocator.ConnectServer($siteServer,$Namespace,$username,$password)

A Compilar o Código

Este exemplo C# requer:

Comentários

O método da amostra tem os seguintes parâmetros:

Parâmetro Tipo Description
connection - Gerido: WqlConnectionManager
- VBScript: SWbemServices
Uma ligação válida ao Fornecedor de SMS.
taskSequence - Gerido: IResultObject
- VBScript: SWbemObject
Uma sequência de tarefas válida(SMS_TaskSequence).
taskSequenceXML - Gerido: String
- VBScript: String
Uma sequência de tarefas válida XML.

Programação Robusta

Para obter mais informações sobre o tratamento de erros, consulte Sobre erros do Gestor de Configuração.

Segurança do .NET Framework

A utilização do script para passar o nome de utilizador e a palavra-passe é um risco de segurança e deve ser evitada sempre que possível.

O exemplo anterior define a autenticação para a privacidade do pacote. Este é o mesmo Fornecedor de SMS gerido.

Para obter mais informações sobre a segurança das aplicações do Gestor de Configuração, consulte a administração baseada em funções do Gestor de Configuração.

Consulte também

Fundamentos do fornecedor de SMS
Como adicionar uma qualificação de contexto do gestor de configuração usando o WMI
Windows Management Instrumentation