Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Poniższe przykłady kodu pokazują, jak skonfigurować kod wywołujący dla przykładów kodu używanych w zestawie Configuration Manager Software Development Kit (SDK).
Zastąp fragment kodu SNIPPETMETHOD fragmentem kodu, który chcesz uruchomić. W większości przypadków należy wprowadzić zmiany, takie jak dodawanie parametrów, aby kod działał.
Aby uzyskać więcej informacji na temat zdalnych połączeń instrumentacji zarządzania windows (WMI), zobacz Nawiązywanie połączenia z usługą WMI na komputerze zdalnym.
Przykład
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;
}
}
}
Kompilowanie kodu
Przestrzenie nazw
System
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Montaż
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
Uwaga
Zestawy znajdują się w folderze <Program Files>\Microsoft Endpoint Manager\AdminConsole\bin.
Wymagania dotyczące środowiska uruchomieniowego
Aby uzyskać więcej informacji, zobacz wymagania dotyczące środowiska uruchomieniowego serwera Configuration Manager.
Niezawodne programowanie
Wyjątki Configuration Manager, które można zgłaszać, to SmsConnectionException i SmsQueryException. Można je złapać razem z platformą SmsException.