Dela via


Så här lägger du till en Windows-drivrutin i ett Configuration Manager startavbildningspaket

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

  1. Konfigurera en anslutning till SMS-providern. Mer information finns i grunderna för SMS-provider.

  2. Hämta SMS_BootImagePackage-objektet för startavbildningspaketet som du vill lägga till drivrutinen i.

  3. Skapa och fyll i ett inbäddat SMS_Driver_Details objekt som innehåller information om drivrutinen.

  4. Lägg till objektet SMS_Driver_Details i ReferencedDrivers matrisegenskapen för SMS_BootImagePackage objektet.

  5. 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