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 -Řízen: WqlConnectionManager
- VBScript: SWbemServices
Platné připojení k poskytovateli serveru SMS.
taskSequence -Řízen: IResultObject
- VBScript: SWbemObject
Platné pořadí úkolů (SMS_TaskSequence).
taskSequenceXML -Řízen: 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ákladní informace o poskytovateli serveru SMS: Přidání kvalifikátoru kontextu Configuration Manager pomocí WMIWindows Management Instrumentation