Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Följande kodexempel visar hur du konfigurerar den anropande koden för de kodexempel som används i hela Configuration Manager Software Development Kit (SDK).
Ersätt kodfragmentet SNIPPETMETHOD med det kodfragment som du vill köra. I de flesta fall måste du göra ändringar, till exempel lägga till parametrar, för att koden ska fungera.
Mer information om WMI-anslutningar (Remote Windows Management Instrumentation) finns i Ansluta till WMI på en fjärrdator.
Exempel
Dim connection
Dim computer
Dim userName
Dim userPassword
Dim password 'Password object
Wscript.StdOut.Write "Computer you want to connect to (Enter . for local): "
computer = WScript.StdIn.ReadLine
If computer = "." Then
    userName = ""
    userPassword = ""
Else
    Wscript.StdOut.Write "Please enter the user name: "
    userName = WScript.StdIn.ReadLine
    Set password = CreateObject("ScriptPW.Password")
    WScript.StdOut.Write "Please enter your password:"
    userPassword = password.GetPassword()
End If
Set connection = Connect(computer,userName,userPassword)
If Err.Number<>0 Then
    Wscript.Echo "Call to connect failed"
End If
Call SNIPPETMETHODNAME (connection)
Sub SNIPPETMETHODNAME(connection)
   ' Insert snippet code here.
End Sub
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, don 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
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using Microsoft.ConfigurationManagement.ManagementProvider;
using Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine;
namespace ConfigurationManagerSnippets
{
    class Program
    {
        static void Main(string[] args)
        {
            // Setup snippet class.
            string computer = "";
            string userName = "";
            string password = "";
            SnippetClass snippets = new SnippetClass();
            Console.WriteLine("Computer you want to connect to (Enter . for local): ");
            computer = Console.ReadLine();
            Console.WriteLine();
            if (computer == ".")
            {
                computer = System.Net.Dns.GetHostName();
                userName = "";
                password = "";
            }
            else
            {
                Console.WriteLine("Please enter the user name: ");
                userName = Console.ReadLine();
                Console.WriteLine("Please enter your password:");
                password = snippets.ReturnPassword();
            }
            // Make connection to provider.
            WqlConnectionManager WMIConnection = snippets.Connect(computer, userName, password);
            // Call snippet function and pass the provider connection object.
            snippets.SNIPPETMETHODNAME(WMIConnection);
        }
    }
    class SnippetClass
    {
        public WqlConnectionManager Connect(string serverName, string userName, string userPassword)
        {
            try
            {
                SmsNamedValuesDictionary namedValues = new SmsNamedValuesDictionary();
                WqlConnectionManager connection = new WqlConnectionManager(namedValues);
                if (System.Net.Dns.GetHostName().ToUpper() == serverName.ToUpper())
                {
                    connection.Connect(serverName);
                }
                else
                {
                    connection.Connect(serverName, userName, userPassword);
                }
                return connection;
            }
            catch (SmsException ex)
            {
                Console.WriteLine("Failed to Connect. Error: " + ex.Message);
                return null;
            }
            catch (UnauthorizedAccessException ex)
            {
                Console.WriteLine("Failed to authenticate. Error:" + ex.Message);
                return null;
            }
        }
        public void SNIPPETMETHODNAME(WqlConnectionManager connection)
        {
            // Insert snippet code here.
        }
        public string ReturnPassword()
        {
            string password = "";
            ConsoleKeyInfo info = Console.ReadKey(true);
            while (info.Key != ConsoleKey.Enter)
            {
                if (info.Key != ConsoleKey.Backspace)
                {
                    password += info.KeyChar;
                    info = Console.ReadKey(true);
                }
                else if (info.Key == ConsoleKey.Backspace)
                {
                    if (!string.IsNullOrEmpty(password))
                    {
                        password = password.Substring
                        (0, password.Length - 1);
                    }
                    info = Console.ReadKey(true);
                }
            }
            for (int i = 0; i < password.Length; i++)
                Console.Write("*");
            return password;
        }
    }
}
Kompilera koden
Namnområden
System
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Församling
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
Obs!
Sammansättningarna finns i <mappen Program Files>\Microsoft Endpoint Manager\AdminConsole\bin.
Körningskrav
Mer information finns i Configuration Manager serverkörningskrav.
Robust programmering
De Configuration Manager undantag som kan aktiveras är SmsConnectionException och SmsQueryException. Dessa kan fångas tillsammans med SmsException.