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
Získejte WbemScripting.SWbemLocator objekt.
Nastavte úroveň ověřování na ochranu osobních údajů paketů.
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č.
Pomocí vlastnosti SMS_ProviderLocationobjektu ProviderForLocalSite se připojte k poskytovateli serveru SMS pro místní počítač a přijměte objekt SWbemServices.
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