Sdílet prostřednictvím


Připojení k poskytovateli serveru SMS v Configuration Manager pomocí rozhraní WMI

Před připojením k poskytovateli serveru SMS pro místní nebo vzdálený server lokality Configuration Manager musíte nejprve vyhledat poskytovatele serveru SMS pro server lokality. Poskytovatel serveru SMS může být místní nebo vzdálený k serveru Configuration Manager lokality, který používáte. Třída SMS_ProviderLocation WMI (Windows Management Instrumentation) je na všech serverech Configuration Manager lokality a jedna instance bude obsahovat umístění pro server Configuration Manager lokality, který používáte.

K poskytovateli serveru SMS na serveru Configuration Manager lokality se můžete připojit pomocí objektu WMI SWbemLocator nebo pomocí metody Windows Script HostGetObject. Oba přístupy fungují stejně dobře u místních i vzdálených připojení s následujícími omezeními:

  • Musíte použít SWbemLocator , pokud potřebujete předat přihlašovací údaje uživatele vzdálenému počítači.

  • Nemůžete použít SWbemLocator k explicitní předání přihlašovacích údajů uživatele místnímu počítači.

    Existuje několik různých syntaxí, které můžete použít k vytvoření připojení v závislosti na tom, jestli je připojení místní nebo vzdálené. Po připojení k poskytovateli serveru SMS budete mít objekt SWbemServices, který používáte pro přístup k Configuration Manager objektům.

Poznámka

Pokud potřebujete přidat kontextové kvalifikátory pro připojení, přečtěte si téma Přidání kvalifikátoru Configuration Manager kontextu pomocí rozhraní WMI.

Připojení k poskytovateli serveru SMS

  1. Získejte WbemScripting.SWbemLocator objekt.

  2. Nastavte úroveň ověřování na ochranu osobních údajů paketů.

  3. Nastavte připojení k poskytovateli serveru SMS pomocí metody ConnectServer objektu SWbemLocator. Zadejte přihlašovací údaje jenom v případě, že se jedná o vzdálený počítač.

  4. Pomocí vlastnosti SMS_ProviderLocationobjektu ProviderForLocalSite se připojte k poskytovateli serveru SMS pro místní počítač a přijměte objekt SWbemServices.

  5. Pro přístup k objektům zprostředkovatele použijte objekt SWbemServices . Další informace najdete v tématu Přehled objektů.

Příklady

Následující příklad se připojí k serveru. Pak se pokusí připojit k poskytovateli serveru SMS pro daný server. Obvykle se jedná o stejný počítač. Pokud není, SMS_ProviderLocation poskytne správný název počítače.

Informace o volání ukázkového kódu najdete v tématu Volání Configuration Manager fragmentů kódu.

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  

Následující ukázka se připojí ke vzdálenému serveru pomocí PowerShellu a pokusí se o připojení 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)

Kompilace kódu

Tento příklad jazyka C# vyžaduje:

Komentáře

Ukázková metoda má následující parametry:

Parametr Typ Popis
connection -Spravované: WqlConnectionManager
- VBScript: SWbemServices
Platné připojení k poskytovateli serveru SMS.
taskSequence -Spravované: IResultObject
-Vbscript: SWbemObject
Platné pořadí úkolů (SMS_TaskSequence).
taskSequenceXML -Spravované: String
-Vbscript: String
Platný kód XML pořadí úkolů.

Robustní programování

Další informace o zpracování chyb najdete v tématu Informace o chybách Configuration Manager.

Zabezpečení rozhraní .NET Framework

Použití skriptu k předání uživatelského jména a hesla představuje bezpečnostní riziko a měli byste se mu vyhnout, pokud je to možné.

Předchozí příklad nastaví ověřování na ochranu osobních údajů paketů. Jedná se o stejného spravovaného poskytovatele serveru SMS.

Další informace o zabezpečení Configuration Manager aplikací najdete v tématu Configuration Manager správa na základě rolí.

Viz taky

Základy poskytovatele serveru SMS
Přidání kvalifikátoru kontextu Configuration Manager pomocí rozhraní WMI
Instrumentace správy systému Windows