Megosztás a következőn keresztül:


Csatlakozás SMS-szolgáltatóhoz a Configuration Manager-ben WMI használatával

Mielőtt helyi vagy távoli Configuration Manager helykiszolgáló sms-szolgáltatóhoz csatlakozik, először meg kell keresnie a helykiszolgáló SMS-szolgáltatót. Az SMS-szolgáltató lehet helyi vagy távoli a használt Configuration Manager helykiszolgálóhoz. A Windows Management Instrumentation (WMI) osztály SMS_ProviderLocation minden Configuration Manager helykiszolgálón megtalálható, és egy példány tartalmazza a használt Configuration Manager helykiszolgáló helyét.

Az SMS-szolgáltatóhoz egy Configuration Manager helykiszolgálón csatlakozhat a WMI SWbemLocator objektummal vagy a Windows szkriptgazda GetObject metódusával. Mindkét megközelítés egyformán jól működik a helyi vagy távoli kapcsolatokon, az alábbi korlátozásokkal:

  • Ezt akkor kell használnia SWbemLocator , ha át kell adnia a felhasználói hitelesítő adatokat egy távoli számítógépnek.

  • A használatával SWbemLocator nem adhatja át explicit módon a felhasználói hitelesítő adatokat egy helyi számítógépnek.

    A kapcsolat létrehozásához számos különböző szintaxis használható, attól függően, hogy a kapcsolat helyi vagy távoli. Miután csatlakozott az SMS-szolgáltatóhoz, egy SWbemServices objektummal fog rendelkezni, amellyel hozzáférhet Configuration Manager objektumokhoz.

Megjegyzés:

Ha környezeti minősítőket kell hozzáadnia a kapcsolathoz, lásd: Configuration Manager környezeti minősítő hozzáadása WMI használatával.

Csatlakozás SMS-szolgáltatóhoz

  1. Szerezze be a WbemScripting.SWbemLocator objektumot.

  2. Állítsa a hitelesítési szintet a csomagok adatvédelmére.

  3. Hozzon létre egy kapcsolatot az SMS-szolgáltatóval az SWbemLocator objektum ConnectServer metódusával. Csak távoli számítógép esetén adja meg a hitelesítő adatokat.

  4. A SMS_ProviderLocation object ProviderForLocalSite tulajdonsággal csatlakozzon a helyi számítógép SMS-szolgáltatóhoz, és fogadjon egy SWbemServices objektumot.

  5. Az SWbemServices objektummal érheti el a szolgáltatói objektumokat. További információ: Objektumok áttekintése.

Példák

Az alábbi példa a kiszolgálóhoz csatlakozik. Ezután megpróbál csatlakozni a kiszolgálóHOZ tartozó SMS-szolgáltatóhoz. Ez általában ugyanaz a számítógép lesz. Ha nem, SMS_ProviderLocation a megfelelő számítógépnevet adja meg.

A mintakód meghívásával kapcsolatos információkért lásd: Configuration Manager Kódrészletek hívása.

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

Az alábbi minta a PowerShell használatával csatlakozik a távoli kiszolgálóhoz, és SMS-kapcsolatot kísérel meg.

$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 kód fordítása

Ehhez a C#-példához a következőre van szükség:

Megjegyzések

A mintametódus a következő paraméterekkel rendelkezik:

Paraméter Típus Leírás
connection -Kezelt: WqlConnectionManager
- VBScript: SWbemServices
Érvényes kapcsolat az SMS-szolgáltatóval.
taskSequence -Kezelt: IResultObject
- VBScript: SWbemObject
Érvényes feladatütemezés (SMS_TaskSequence).
taskSequenceXML -Kezelt: String
- VBScript: String
Érvényes feladatütemezési XML.

Robusztus programozás

A hibakezeléssel kapcsolatos további információkért lásd: A Configuration Manager hibák ismertetése.

.NET-keretrendszer Security

A felhasználónév és a jelszó átadására szolgáló szkript használata biztonsági kockázatot jelent, és ahol lehetséges, el kell kerülni.

Az előző példa csomagvédelmet állít be a hitelesítéshez. Ez ugyanaz a felügyelt SMS-szolgáltató.

A Configuration Manager alkalmazások biztonságossá tételével kapcsolatos további információkért lásd: Configuration Manager szerepköralapú felügyelet.

Lásd még

Az SMS-szolgáltató alapjaiA Configuration Manager környezeti minősítő hozzáadásaa WMI Windows Management Instrumentation használatával