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.
I Configuration Manager lägger du till en Windows-drivrutin i ett startavbildningspaket för operativsystemdistribution genom att lägga till en referens till den drivrutin som krävs i matrisegenskapen SMS_BootImagePackage Server WMI-klassReferencedDrivers
.
Obs!
Egenskapen ReferencedDrivers
är en matris med en inbäddad SMS_Driver_Details objekt och du kan lägga till mer än en drivrutin i paketet. Objekten i matrisen läggs till i startavbildningspaketet varje gång det uppdateras på distributionsplatsen.
Platsen för drivrutinsinnehållet hämtas vanligtvis från objektegenskapen SMS_Driver Server WMI-klassContentSourcePath
, men detta kan åsidosättas om den ursprungliga drivrutinsplatsen inte är tillgänglig.
Det kan vara nödvändigt att lägga till nätverks- eller lagringsdrivrutiner i ett startavbildningspaket så att en aktivitetssekvens kan komma åt nätverks- och diskresurserna i WinPE.
Drivrutiner läggs bara till i avbildningen när startavbildningen uppdateras genom att metoden RefreshPkgSource anropas i metoden Class SMS_BootImagePackage .
Drivrutiner läggs till i avbildningen med hjälp av Windows Package Manager.
Så här lägger du till en Windows-drivrutin i ett startavbildningspaket
Konfigurera en anslutning till SMS-providern. Mer information finns i grunderna för SMS-provider.
Hämta SMS_BootImagePackage-objektet för startavbildningspaketet som du vill lägga till drivrutinen i.
Skapa och fyll i ett inbäddat
SMS_Driver_Details
objekt som innehåller information om drivrutinen.Lägg till objektet
SMS_Driver_Details
iReferencedDrivers
matrisegenskapen förSMS_BootImagePackage
objektet.Checka in objektändringarna
SMS_BootImagePackage
.
Exempel
Följande exempelmetod lägger till en Windows-drivrutin i ett startavbildningspaket. Paketet identifieras av dess PackageID
egenskap och drivrutinen identifieras av dess CI_ID
egenskap.
Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.
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;
}
}
Exempelmetoden har följande parametrar:
Parameter | Typ | Beskrivning |
---|---|---|
Connection |
-Hanterade:WqlConnectionManager – VBScript: SWbemServices |
En giltig anslutning till SMS-providern. |
driverID |
-Hanterade: String – VBScript: String |
Windows-drivrutinsidentifieraren som är tillgänglig i SMS_Driver.CI_ID . |
PackageID |
-Hanterade: String – VBScript: String |
Paketidentifieraren för startavbildningen som är tillgänglig i SMS_BootImagePackage.PackageID . |
Kompilera koden
Det här C#-exemplet kräver:
Namnområden
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Församling
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robust programmering
Mer information om felhantering finns i Om Configuration Manager fel.
.NET Framework Säkerhet
Mer information om hur du skyddar Configuration Manager program finns i Configuration Manager rollbaserad administration.
Se även
Om drivrutinshantering för operativsystemdistributionSå här tar du bort en Windows-drivrutin från ett startavbildningspaket