Partage via


Comment se connecter à un fournisseur SMS dans Configuration Manager à l’aide de WMI

Avant de vous connecter au fournisseur SMS pour un serveur de site local ou distant Configuration Manager, vous devez d’abord localiser le fournisseur SMS pour le serveur de site. Le fournisseur SMS peut être local ou distant sur le serveur de site Configuration Manager que vous utilisez. La classe SMS_ProviderLocation WMI (Windows Management Instrumentation) est présente sur tous les serveurs de site Configuration Manager, et une instance contient l’emplacement du serveur de site Configuration Manager que vous utilisez.

Vous pouvez vous connecter au fournisseur SMS sur un serveur de site Configuration Manager à l’aide de l’objet WMI SWbemLocator ou de la méthode Windows Script HostGetObject. Les deux approches fonctionnent également bien sur les connexions locales ou distantes, avec les limitations suivantes :

  • Vous devez utiliser SWbemLocator si vous devez transmettre les informations d’identification de l’utilisateur à un ordinateur distant.

  • Vous ne pouvez pas utiliser SWbemLocator pour transmettre explicitement les informations d’identification de l’utilisateur à un ordinateur local.

    Il existe plusieurs syntaxes différentes que vous pouvez utiliser pour établir la connexion, selon que la connexion est locale ou distante. Une fois que vous êtes connecté au fournisseur SMS, vous disposez d’un objet SWbemServices que vous utilisez pour accéder à Configuration Manager objets.

Remarque

Si vous avez besoin d’ajouter des qualificateurs de contexte pour la connexion, consultez Comment ajouter un qualificateur de contexte Configuration Manager à l’aide de WMI.

Pour se connecter à un fournisseur SMS

  1. Obtient un objet WbemScripting.SWbemLocator .

  2. Définissez le niveau d’authentification sur La confidentialité des paquets.

  3. Configurez une connexion au fournisseur SMS à l’aide de la méthode ConnectServer de l’objet SWbemLocator. Fournissez les informations d’identification uniquement s’il s’agit d’un ordinateur distant.

  4. À l’aide de la propriété ProviderForLocalSitede l’objet SMS_ProviderLocation, connectez-vous au fournisseur SMS de l’ordinateur local et recevez un objet SWbemServices.

  5. Utilisez l’objet SWbemServices pour accéder aux objets du fournisseur. Pour plus d’informations, consultez Vue d’ensemble des objets.

Exemples

L’exemple suivant se connecte au serveur. Il tente ensuite de se connecter au fournisseur SMS pour ce serveur. En règle générale, il s’agit du même ordinateur. Si ce n’est pas le cas, SMS_ProviderLocation fournit le nom d’ordinateur correct.

Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code Configuration Manager.

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  

L’exemple suivant se connecte au serveur distant à l’aide de powerShell et tente une connexion 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)

Compilation du code

Cet exemple C# nécessite :

Comments

L’exemple de méthode a les paramètres suivants :

Paramètre Type Description
connection -Géré: WqlConnectionManager
- VBScript : SWbemServices
Connexion valide au fournisseur SMS.
taskSequence -Géré: IResultObject
-Vbscript: SWbemObject
Séquence de tâches valide (SMS_TaskSequence).
taskSequenceXML -Géré: String
-Vbscript: String
Xml de séquence de tâches valide.

Programmation robuste

Pour plus d’informations sur la gestion des erreurs, consultez À propos des erreurs Configuration Manager.

Sécurité de .NET Framework

L’utilisation d’un script pour transmettre le nom d’utilisateur et le mot de passe constitue un risque pour la sécurité et doit être évitée dans la mesure du possible.

L’exemple précédent définit l’authentification sur la confidentialité des paquets. Il s’agit du même fournisseur SMS managé.

Pour plus d’informations sur la sécurisation des applications Configuration Manager, consultez Configuration Manager’administration basée sur les rôles.

Voir aussi

Notions de base du fournisseur SMS
Comment ajouter un qualificateur de contexte Configuration Manager à l’aide de WMI
Windows Infrastructure de gestion