Jak dodać sterownik systemu Windows do pakietu obrazu rozruchowego Configuration Manager
W Configuration Manager należy dodać sterownik systemu Windows do pakietu obrazu rozruchowego wdrożenia systemu operacyjnego, dodając odwołanie do wymaganego sterownika we właściwości tablicy klasy ReferencedDrivers
WMI serwera SMS_BootImagePackage.
Uwaga
Właściwość ReferencedDrivers
jest tablicą osadzonego obiektu SMS_Driver_Details i można dodać do pakietu więcej niż jeden sterownik. Obiekty w tablicy są dodawane do pakietu obrazu rozruchowego za każdym razem, gdy są aktualizowane w punkcie dystrybucji.
Lokalizacja zawartości sterownika jest zwykle uzyskiwana z właściwości obiektu ContentSourcePath
klasy WMI serwera SMS_Driver, ale można ją zastąpić, jeśli oryginalna lokalizacja sterownika nie jest dostępna.
Może być konieczne dodanie sterowników sieci lub magazynu do pakietu obrazu rozruchowego, aby sekwencja zadań mogła uzyskiwać dostęp do zasobów sieciowych i dyskowych w programie WinPE.
Sterowniki są dodawane do obrazu tylko wtedy, gdy obraz rozruchowy jest odświeżany przez wywołanie metody RefreshPkgSource w klasie SMS_BootImagePackage .
Sterowniki są dodawane do obrazu przy użyciu Menedżer pakietów systemu Windows.
Aby dodać sterownik systemu Windows do pakietu obrazu rozruchowego
Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.
Pobierz obiekt SMS_BootImagePackage dla pakietu obrazów rozruchowych, do których chcesz dodać sterownik.
Utwórz i wypełnij obiekt osadzony
SMS_Driver_Details
, aby zawierał szczegóły sterownika.SMS_Driver_Details
Dodaj obiekt doReferencedDrivers
właściwości tablicy obiektuSMS_BootImagePackage
.Zatwierdź zmiany obiektu
SMS_BootImagePackage
.
Przykład
Poniższa przykładowa metoda dodaje sterownik systemu Windows do pakietu obrazu rozruchowego. Pakiet jest identyfikowany przez jego PackageID
właściwość, a sterownik jest identyfikowany przez jego CI_ID
właściwość.
Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu Configuration Manager.
Sub AddDriverToBootImagePackage(connection, driverId,packageId)
Dim bootImagePackage
Dim driver
Dim referencedDrivers
Dim driverDetails
' Get the boot image package and referenced drivers.
Set bootImagePackage = connection.Get("SMS_BootImagePackage.PackageID='" & packageId &"'" )
referencedDrivers = bootImagePackage.ReferencedDrivers
' Get the driver.
Set driver = connection.Get("SMS_Driver.CI_ID=" & driverId )
' Create and populate the driver details.
Set driverDetails = connection.Get("SMS_Driver_Details").SpawnInstance_
driverDetails.ID=driverId
driverDetails.SourcePath=driver.ContentSourcePath
' Add the driver details.
ReDim Preserve referencedDrivers (Ubound (referencedDrivers)+1)
Set referencedDrivers(Ubound(referencedDrivers))=driverDetails
bootImagePackage.ReferencedDrivers=referencedDrivers
bootImagePackage.Put_
bootImagePackage.RefreshPkgSource
End Sub
public void AddDriverToBootImagePackage(
WqlConnectionManager connection,
int driverId,
string packageId)
{
try
{
// Get the boot image package.
IResultObject bootImagePackage = connection.GetInstance(@"SMS_BootImagePackage.packageId='" + packageId + "'");
// Get the driver.
IResultObject driver = connection.GetInstance("SMS_Driver.CI_ID=" + driverId);
// Get the drivers that are referenced by the package.
List<IResultObject> referencedDrivers = bootImagePackage.GetArrayItems("ReferencedDrivers");
// Create and populate an embedded SMS_Driver_Details. This is added to the ReferencedDrivers array.
IResultObject driverDetails = connection.CreateEmbeddedObjectInstance("SMS_Driver_Details");
driverDetails["ID"].IntegerValue = driverId;
driverDetails["SourcePath"].StringValue = driver["ContentSourcePath"].StringValue;
// Add the driver details to the array.
referencedDrivers.Add(driverDetails);
// Add the array to the boot image package.
bootImagePackage.SetArrayItems("ReferencedDrivers", referencedDrivers);
// Commit the changes.
bootImagePackage.Put();
bootImagePackage.ExecuteMethod("RefreshPkgSource", null);
}
catch (SmsException e)
{
Console.WriteLine(e.Message);
throw;
}
}
Przykładowa metoda ma następujące parametry:
Parametr | Wpisać | Opis |
---|---|---|
Connection |
-Zarządzane:WqlConnectionManager - VBScript: SWbemServices |
Prawidłowe połączenie z dostawcą programu SMS. |
driverID |
-Zarządzane: String -Vbscript: String |
Identyfikator sterownika systemu Windows dostępny w systemie SMS_Driver.CI_ID . |
PackageID |
-Zarządzane: String -Vbscript: String |
Identyfikator pakietu obrazu rozruchowego dostępny w programie SMS_BootImagePackage.PackageID . |
Kompilowanie kodu
Ten przykład języka C# wymaga:
Obszary nazw
System
System.collections.generic
System.text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Zestawu
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Niezawodne programowanie
Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.
zabezpieczenia .NET Framework
Aby uzyskać więcej informacji na temat zabezpieczania aplikacji Configuration Manager, zobacz Configuration Manager administracja oparta na rolach.
Zobacz też
Informacje o zarządzaniu sterownikami wdrażania systemu operacyjnego
Jak usunąć sterownik systemu Windows z pakietu obrazu rozruchowego
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla