Entfernen eines Windows-Treibers aus einem Startabbildpaket
In Configuration Manager entfernen Sie einen Windows-Treiber aus einem Startabbildpaket der Betriebssystembereitstellung, indem Sie ihn aus der ReferencedDrivers
-Eigenschaft des WMI-Klassenobjekts des SMS_BootImagePackage-Servers entfernen.
Hinweis
Der Treiber wird erst entfernt, wenn das Startabbildpaket aktualisiert und auf den Verteilungspunkten aktualisiert wird.
So entfernen Sie einen Windows-Treiber aus einem Startimagepaket
Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.
Rufen Sie das SMS_BootImagePackage-Objekt für das Startimagepaket ab, das den Treiber enthält, den Sie entfernen möchten.
Entfernen Sie den Treiber aus der
ReferencedDrivers
-Eigenschaft. Der Treiber wird durch seinen Konfigurationselementbezeichner identifiziert, der durch dieID
-Eigenschaft des SMS_Driver_Details Server WMI Class-Objekts dargestellt wird. Dieser Bezeichner entspricht derCI_ID
-Eigenschaft vonSMS_Driver
.Committen Sie die
SMS_BootImagePackage
Objektänderungen.Aktualisieren Sie das Startabbildpaket, indem Sie aufrufen
RefreshPkgSource
.
Beispiel
Die folgende Beispielmethode entfernt den Windows-Treiber aus dem Startimagepaket. Das Paket wird durch seine PackageID
-Eigenschaft identifiziert, und der Treiber wird durch seine CI_ID
-Eigenschaft identifiziert.
Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.
Sub RemoveDriverFromBootImagePackage(connection, driverId, packageId)
Dim bootImagePackage
Dim driver
Dim driverDetails
Dim newReferencedDrivers()
Dim found
Dim index
' Get the boot image package.
Set bootImagePackage = connection.Get("SMS_BootImagePackage.PackageID='" & packageId &"'" )
found = False
index=0
' Copy the contents and leave out the driver.
For Each driver In bootImagePackage.ReferencedDrivers
If driver.ID = driverID Then
found=True
Else
Set newReferencedDrivers(index)=driver
index = index + 1
End If
Next
' Update the referenced drivers.
If found=True Then
ReDim preserve newReferencedDrivers(UBound(bootImagePackage.ReferencedDrivers)-1)
bootImagePackage.ReferencedDrivers=newReferencedDrivers
bootImagePackage.Put_
bootImagePackage.RefreshPkgSource
End If
End Sub
public void RemoveDriverFromBootImagePackage(
WqlConnectionManager connection,
int driverId,
string packageId)
{
try
{
// Get the boot image package.
IResultObject bootImagePackage = connection.GetInstance(@"SMS_BootImagePackage.packageId='" + packageId + "'");
// Get the (SMS_Driver_Details) drivers referenced by the package.
List<IResultObject> referencedDrivers = bootImagePackage.GetArrayItems("ReferencedDrivers");
foreach (IResultObject ro in referencedDrivers)
{
if (ro["ID"].IntegerValue == driverId) // Remove the driver that matches driverId.
{
referencedDrivers.Remove(ro);
break;
}
}
bootImagePackage.SetArrayItems("ReferencedDrivers", referencedDrivers);
// Commit the changes.
bootImagePackage.Put();
bootImagePackage.ExecuteMethod("RefreshPkgSource", null);
}
catch (SmsException e)
{
Console.WriteLine(e.Message);
throw;
}
}
Die Beispielmethode verfügt über die folgenden Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
Connection |
-Verwalteten: WqlConnectionManager – VBScript: SWbemServices |
Eine gültige Verbindung mit dem SMS-Anbieter. |
driverID |
-Verwalteten: Integer -Vbscript: Integer |
Der in SMS_Driver.CI_ID verfügbare Windows-Treiberbezeichner. |
PackageID |
-Verwalteten: String -Vbscript: String |
Der in SMS_BootImagePackage.PackageID verfügbare Startabbildpaketbezeichner. |
Kompilieren des Codes
Für dieses C#-Beispiel ist Folgendes erforderlich:
Namespaces
System
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robuste Programmierung
Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager Fehlern.
.NET Framework-Sicherheit
Weitere Informationen zum Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.
Siehe auch
Informationen zur Treiberverwaltung für die Betriebssystembereitstellung
Hinzufügen eines Windows-Treibers zu einem Configuration Manager-Startabbildpaket